import { IOmniaContext, IMutableContextProvider, OmniaEnvironmentContext, Theming, OmniaTokenContext, IMessageBusTopicSubscription, IMutableContext, IBusinessProfile, HttpHeaders, ITenant, Guid, UserWithPropertyBag, IAppRoute, GuidValue, AppInstanceContext } from "../models";
import { AxiosResponse } from "axios";
declare global {
    let _spPageContextInfo: {
        aadUserId: string;
    };
}
export declare class OmniaCtxProvider {
    private static _instance;
    static get instance(): IMutableContextProvider<IOmniaContext>;
}
export declare class OmniaContextProvider implements IMutableContextProvider<IOmniaContext>, IOmniaContext {
    private httpContextProviderCollection;
    private _fallbackProvider;
    private _appRoute;
    private _activatedFeatures;
    protected id: GuidValue;
    constructor();
    dispose(): void;
    get language(): string;
    get environment(): OmniaEnvironmentContext;
    get businessProfile(): IBusinessProfile;
    get appRoute(): IAppRoute;
    get tenant(): ITenant;
    get theming(): Theming;
    get user(): Promise<UserWithPropertyBag>;
    get tokens(): OmniaTokenContext;
    get activatedFeatures(): Guid[];
    get customDomain(): string;
    get defaultDomain(): string;
    get routePrefixes(): string[];
    onContextChanged: () => IMessageBusTopicSubscription<IOmniaContext>;
    getMutableContext: () => IMutableContext<IOmniaContext>;
    getProviderUniqueId: () => string;
    getSerializeableContextRepresentation: () => Promise<any>;
    createFromContextRepresentation: (contextRepresentation: any) => void;
    getContext: () => this;
    getContextHttpHeaders: () => Promise<HttpHeaders>;
    getHttpHeaders: () => Promise<HttpHeaders>;
    shouldRetryHttpRequest: (httpResponse: AxiosResponse<any>) => Promise<boolean>;
    updateAppContext: (appCtx: AppInstanceContext) => void;
}
