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; }