import { AxiosInstance } from 'axios'; import { CurrentUser, D2EngineModule, DataElementModule, Manifest, OptionSetModule, ProgramModule, TrackerModule, UserModule, SystemInfo, SystemModule, EventModule } from './modules'; import { D2HttpClient, D2IndexDb, D2WebConfig } from './shared'; export interface D2Window extends Window { d2Web: D2Web; } export declare class D2Web { #private; private static instance; httpInstance: D2HttpClient; appManifest: Manifest | null; currentUser: CurrentUser | null; systemInfo: SystemInfo | null; private constructor(); static initialize(config: D2WebConfig): Promise; static getInstance(config: D2WebConfig): Promise; setConfig(config: D2WebConfig): void; setAppManifest(axiosInstance: AxiosInstance): Promise; setCurrentUser(): Promise; setSystemInfo(): Promise; setHttpInstance(axiosInstance: AxiosInstance, indexDb: D2IndexDb): void; get rootUrl(): string; get config(): D2WebConfig; get userModule(): UserModule; get systemModule(): SystemModule; get programModule(): ProgramModule; get dataElementModule(): DataElementModule; get optionSetModule(): OptionSetModule; get engineModule(): D2EngineModule; get eventModule(): EventModule; get trackerModule(): TrackerModule; }