import { Config , IPackageStorage , Token , TokenFilter } from '@verdaccio/types' ; import { searchUtils } from '.' ; interface IPlugin { version ? : string ; close ? ( ) : void ; } export interface IPluginStorage < T > extends IPlugin { config : T & Config ; add ( name ) : Promise < void > ; remove ( name ) : Promise < void > ; get ( ) : Promise < any > ; init ( ) : Promise < void > ; getSecret ( ) : Promise < string > ; setSecret ( secret ) : Promise < any > ; getPackageStorage ( packageInfo ) : IPackageStorage ; search ( query ) : Promise < searchUtils . SearchItem [ ] > ; saveToken ( token ) : Promise < any > ; deleteToken ( user , tokenKey ) : Promise < any > ; readTokens ( filter ) : Promise < Token [ ] > ; }