import { InjectionToken } from "injection-js"; import { Fetch, RequestAdapter } from "../../internal/requestAdapter"; import { IModule, ModuleConfiguration } from "./module"; import { IAuthOptions } from "./tokenManager"; import { DispatchEventsType, FunctionEvents } from "./dispatcher"; export declare const ClientInit: InjectionToken>; export declare const ClientConfiguration: InjectionToken; export declare function CollectConfigurationFactory(modules: IModule[]): () => { [moduleName: string]: ModuleConfiguration; }; export declare function RequestAdapterFactory(fetch: Fetch): () => RequestAdapter; export declare class Client { private fetch; private tokenManager; private modules; private dispatcher; constructor(fetch: Fetch); init(opts: IAuthOptions, ...modules: IModule[]): Promise; terminate(): Promise; static collectConfiguration(modules: IModule[]): { [moduleName: string]: ModuleConfiguration; }; on(eventName: DispatchEventsType, listener: FunctionEvents): void; }