import { IObservableArray } from "mobx"; import { CubaApp, EntityMessages, EnumInfo, MetaClassInfo } from "@cuba-platform/rest"; import { IWrappedComponent } from "mobx-react"; import { IReactComponent } from "mobx-react/dist/types/IReactComponent"; import { Security } from './Security'; export declare class MainStore { private cubaREST; static NAME: string; /** * Whether the `MainStore` instance is initialized. */ initialized: boolean; /** * Whether the user authenticated. */ authenticated: boolean; /** * Whether the user is anonymous. */ usingAnonymously: boolean; userName?: string; /** * Currently selected locale. */ locale?: string; /** * Information about project entities. */ metadata?: IObservableArray; /** * Localized entity messages. */ messages?: EntityMessages; /** * Localized enums. */ enums?: IObservableArray; security: Security; private metadataRequestCount; private messagesRequestCount; private enumsRequestCount; private disposeTokenExpiryListener?; constructor(cubaREST: CubaApp); /** * `true` means that `MainStore` is in a state when entity data can be displayed (i.e. entity metadata, * localized entity messages, localized enums and permissions information has been loaded). */ isEntityDataLoaded(): boolean; /** * Retrieves localized enums using REST API. */ loadEnums(): void; /** * Retrieves entity metadata using REST API. */ loadMetadata(): void; /** * Retrieves localized entity messages using REST API. */ loadMessages(): void; /** * Changes the active locale for this frontend client application. * * @param locale - locale to be set as active. */ setLocale: (locale: string) => void; get loginRequired(): boolean; login(login: string, password: string): Promise; logout(): Promise; /** * Initializes this `MainStore` instance. * * @returns a promise that resolves when initialization is complete. */ initialize(): Promise; private handleLocaleChange; private setSessionLocale; } export interface MainStoreInjected { mainStore?: MainStore; } export declare function injectMainStore(target: T): T & IWrappedComponent; /** * A hook returning a {@link MainStore} */ export declare const useMainStore: () => MainStore;