import { OmniaEnvironmentContext, Theming, OmniaTokenContext, GuidValue, IOmniaContext, IBusinessProfile, IMessageBusTopicSubscription, ITenant, Guid, UserWithPropertyBag, IAppRoute } from "../models";
/**
 * Provides Omnia related contexts. This context should be injected using @Inject(OmniaContext)
 * @class OmniaContext
 */
export declare class OmniaContext implements IOmniaContext {
    private provider;
    protected id: any;
    constructor();
    dispose(): void;
    private ensureReflectRealInstance;
    /**
    * The id of the provider which created this context
    */
    get providerId(): GuidValue;
    onContextChanged(): IMessageBusTopicSubscription<IOmniaContext>;
    /**
    * Return current business or null if no business profile
    */
    get businessProfile(): IBusinessProfile;
    /**
    * Return current app route or null if no app route
    */
    get appRoute(): IAppRoute;
    /**
    * Return current language
    */
    get language(): string;
    /**
    * Environment related context
    */
    get environment(): OmniaEnvironmentContext;
    /**
    * Theming related context
    */
    get theming(): Theming;
    /**
    * Information about current user
    */
    get user(): Promise<UserWithPropertyBag>;
    /**
    * Token related context
    */
    get tokens(): OmniaTokenContext;
    /**
    * Return current tenant or null if no tenant
    */
    get tenant(): ITenant;
    /**
    * Return activated features
    */
    get activatedFeatures(): Guid[];
    /**
    * If enabled returns the custom domain or else returns null
    */
    get customDomain(): string;
    /**
    * Returns the default omnia cloud domain. e.g dns to omnia
    */
    get defaultDomain(): string;
    /**
    * Returns the list of available route prefixes on this tenant
    */
    get routePrefixes(): string[];
}
