interface IStringMap { [key: string]: any } interface IFndrConnector { name: string config(config: string): Promise isConfigValid?(config: string): Promise getAllAccounts(config: string, query?: string): Promise getAccount( config: string, opts: IGetAccountOpts, extra?: any ): Promise addAccount(config: string, acc: IFndrAccount): Promise updateAccount(config: string, acc: IFndrAccount): Promise deleteAccount(config: string, id: string): Promise } interface IFndrAccount { id: string name: string username?: string password?: string extra?: string isDeleted?: boolean meta?: string } interface IFndrAccountMap { [id: string]: IFndrAccount } interface IGetAccountOpts { id?: string name?: string } interface IFndrCommand { name: string help(): string execute(config: string, options?: any): any runCli(config: string, options?: any): Promise options?(): IFndrCommandOptions[] } interface IFndrCommandOptions { flag: string desc: string isRequired?: boolean }