import { SubscriptionHandler } from "../core";
import { VersionedAlternateLayout, VersionedLayout, VersionedLayoutId, VersionedLayoutDefinition, DisplayBreakpointVersionedAlternateLayoutMapping, GuidValue, ICheckedoutVersionedData, IVersionedData, IVersionedDataIdentifier, IVersionReference, LatestReferenceResponse, Layout } from "../models";
import { Store } from "./Store";
export declare class VersionedLayoutStore extends Store {
    private versionedLayoutService;
    private omniaContext;
    private internal;
    subscriptionHandler: SubscriptionHandler;
    getters: {
        getLayout: (versionedLayoutId: number) => VersionedLayout;
        getLayoutByIdentifer: (identifier: IVersionedDataIdentifier) => VersionedLayout;
        getLayoutDefinition: (version: IVersionReference) => IVersionedData<VersionedLayoutDefinition>;
        getLatestRef: (dataIdentifier: IVersionedDataIdentifier) => LatestReferenceResponse;
        getAppScopedLayoutWithDefinition: <Definition extends VersionedLayoutDefinition>(appInstanceId: GuidValue, definition: new () => Definition) => VersionedLayout[];
        getTenantScopedLayoutWithDefinition: <Definition_1 extends VersionedLayoutDefinition>(definition: new () => Definition_1) => VersionedLayout[];
        getBusinessProfileScopedLayoutWithDefinition: <Definition_2 extends VersionedLayoutDefinition>(businessProfileId: GuidValue, definition: new () => Definition_2) => VersionedLayout[];
    };
    mutations: {
        addOrUpdateLayouts: import("./Store").StoreMutation<(...versionedLayouts: VersionedLayout[]) => void, (...args: VersionedLayout[]) => import("@omnia/fx-models").IMessageBusSubscriptionHandler>;
        addOrUpdateDefinitions: import("./Store").StoreMutation<(...definitions: IVersionedData<VersionedLayoutDefinition>[]) => void, (...args: IVersionedData<VersionedLayoutDefinition>[]) => import("@omnia/fx-models").IMessageBusSubscriptionHandler>;
    };
    actions: {
        ensureLoadForApp: import("./Store").StoreAction<unknown, (appInstanceId: GuidValue) => void, (result: void, appInstanceId: GuidValue) => void, (failureReason: any, appInstanceId: GuidValue) => void, (appInstanceId: GuidValue) => Promise<void>>;
        ensureLoadForTenant: import("./Store").StoreAction<unknown, () => void, (result: void) => void, (failureReason: any) => void, () => Promise<void>>;
        ensureLoadLayoutDefinitionLatestRef: import("./Store").StoreAction<unknown, (dataIdentifier: IVersionedDataIdentifier, useCache?: unknown) => void, (result: void, dataIdentifier: IVersionedDataIdentifier, useCache?: unknown) => void, (failureReason: any, dataIdentifier: IVersionedDataIdentifier, useCache?: unknown) => void, (dataIdentifier: IVersionedDataIdentifier, useCache?: unknown) => Promise<void>>;
        ensureLoadByIdentifier: import("./Store").StoreAction<unknown, (identifier: IVersionedDataIdentifier, useCache?: unknown) => void, (result: void, identifier: IVersionedDataIdentifier, useCache?: unknown) => void, (failureReason: any, identifier: IVersionedDataIdentifier, useCache?: unknown) => void, (identifier: IVersionedDataIdentifier, useCache?: unknown) => Promise<void>>;
        ensureLoadById: import("./Store").StoreAction<unknown, (versionedLayoutId: VersionedLayoutId, useCache?: unknown) => void, (result: void, versionedLayoutId: VersionedLayoutId, useCache?: unknown) => void, (failureReason: any, versionedLayoutId: VersionedLayoutId, useCache?: unknown) => void, (versionedLayoutId: VersionedLayoutId, useCache?: unknown) => Promise<void>>;
        ensureLoadDefinition: import("./Store").StoreAction<unknown, (version: IVersionReference) => void, (result: void, version: IVersionReference) => void, (failureReason: any, version: IVersionReference) => void, (version: IVersionReference) => Promise<void>>;
        ensureLoadDefinitionWithParentLayout: import("./Store").StoreAction<unknown, (version: IVersionReference, parentVersion: IVersionReference, force?: boolean) => void, (result: Layout, version: IVersionReference, parentVersion: IVersionReference, force?: boolean) => void, (failureReason: any, version: IVersionReference, parentVersion: IVersionReference, force?: boolean) => void, (version: IVersionReference, parentVersion: IVersionReference, force?: boolean) => Promise<Layout>>;
        ensureLoadDisplayBreakpointMapping: import("./Store").StoreAction<unknown, (versionedLayout: VersionedLayout, useCache?: unknown) => void, (result: DisplayBreakpointVersionedAlternateLayoutMapping, versionedLayout: VersionedLayout, useCache?: unknown) => void, (failureReason: any, versionedLayout: VersionedLayout, useCache?: unknown) => void, (versionedLayout: VersionedLayout, useCache?: unknown) => Promise<DisplayBreakpointVersionedAlternateLayoutMapping>>;
        ensureLoadByProfileAndTypeId: import("./Store").StoreAction<unknown, (businessProfileId: GuidValue, layoutTypeId: GuidValue) => void, (result: void, businessProfileId: GuidValue, layoutTypeId: GuidValue) => void, (failureReason: any, businessProfileId: GuidValue, layoutTypeId: GuidValue) => void, (businessProfileId: GuidValue, layoutTypeId: GuidValue) => Promise<void>>;
        ensureLoadByTypeIds: import("./Store").StoreAction<unknown, (layoutTypeIds: GuidValue[]) => void, (result: void, layoutTypeIds: GuidValue[]) => void, (failureReason: any, layoutTypeIds: GuidValue[]) => void, (layoutTypeIds: GuidValue[]) => Promise<void>>;
        setDisplayBreakpointMapping: import("./Store").StoreAction<unknown, (versionedLayout: VersionedLayout, mapping: DisplayBreakpointVersionedAlternateLayoutMapping) => void, (result: void, versionedLayout: VersionedLayout, mapping: DisplayBreakpointVersionedAlternateLayoutMapping) => void, (failureReason: any, versionedLayout: VersionedLayout, mapping: DisplayBreakpointVersionedAlternateLayoutMapping) => void, (versionedLayout: VersionedLayout, mapping: DisplayBreakpointVersionedAlternateLayoutMapping) => Promise<void>>;
        createAppScoped: import("./Store").StoreAction<unknown, (appInstanceId: GuidValue, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (result: {
            versionedLayout: VersionedLayout;
            checkedOutVersionedData: IVersionedData<VersionedLayoutDefinition>;
        }, appInstanceId: GuidValue, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (failureReason: any, appInstanceId: GuidValue, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (appInstanceId: GuidValue, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => Promise<{
            versionedLayout: VersionedLayout;
            checkedOutVersionedData: IVersionedData<VersionedLayoutDefinition>;
        }>>;
        createBusinessProfileScoped: import("./Store").StoreAction<unknown, (businessProfileId: GuidValue, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (result: {
            versionedLayout: VersionedLayout;
            checkedOutVersionedData: IVersionedData<VersionedLayoutDefinition>;
        }, businessProfileId: GuidValue, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (failureReason: any, businessProfileId: GuidValue, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (businessProfileId: GuidValue, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => Promise<{
            versionedLayout: VersionedLayout;
            checkedOutVersionedData: IVersionedData<VersionedLayoutDefinition>;
        }>>;
        createTenantScoped: import("./Store").StoreAction<unknown, (definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (result: {
            versionedLayout: VersionedLayout;
            checkedOutVersionedData: IVersionedData<VersionedLayoutDefinition>;
        }, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (failureReason: any, definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => void, (definition: VersionedLayoutDefinition, urlSegment: string, parentLayoutId?: VersionedLayoutId) => Promise<{
            versionedLayout: VersionedLayout;
            checkedOutVersionedData: IVersionedData<VersionedLayoutDefinition>;
        }>>;
        createAlternate: import("./Store").StoreAction<unknown, (layout: VersionedLayout, title: string, definition: VersionedLayoutDefinition) => void, (result: {
            versionedLayout: VersionedLayout;
            versionedAlternateLayout: VersionedAlternateLayout;
            checkedOutVersionedData: IVersionedData<VersionedLayoutDefinition>;
        }, layout: VersionedLayout, title: string, definition: VersionedLayoutDefinition) => void, (failureReason: any, layout: VersionedLayout, title: string, definition: VersionedLayoutDefinition) => void, (layout: VersionedLayout, title: string, definition: VersionedLayoutDefinition) => Promise<{
            versionedLayout: VersionedLayout;
            versionedAlternateLayout: VersionedAlternateLayout;
            checkedOutVersionedData: IVersionedData<VersionedLayoutDefinition>;
        }>>;
        publishDefinition: import("./Store").StoreAction<unknown, (version: IVersionedData<VersionedLayoutDefinition>) => void, (result: IVersionedData<VersionedLayoutDefinition>, version: IVersionedData<VersionedLayoutDefinition>) => void, (failureReason: any, version: IVersionedData<VersionedLayoutDefinition>) => void, (version: IVersionedData<VersionedLayoutDefinition>) => Promise<IVersionedData<VersionedLayoutDefinition>>>;
        updateDefinition: import("./Store").StoreAction<unknown, (version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (result: ICheckedoutVersionedData<VersionedLayoutDefinition>, version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (failureReason: any, version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => Promise<ICheckedoutVersionedData<VersionedLayoutDefinition>>>;
        checkOutDefinition: import("./Store").StoreAction<unknown, (dataIdentifier: IVersionedDataIdentifier, takeOver?: boolean) => void, (result: ICheckedoutVersionedData<VersionedLayoutDefinition>, dataIdentifier: IVersionedDataIdentifier, takeOver?: boolean) => void, (failureReason: any, dataIdentifier: IVersionedDataIdentifier, takeOver?: boolean) => void, (dataIdentifier: IVersionedDataIdentifier, takeOver?: boolean) => Promise<ICheckedoutVersionedData<VersionedLayoutDefinition>>>;
        checkInDefinition: import("./Store").StoreAction<unknown, (version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (result: IVersionedData<VersionedLayoutDefinition>, version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (failureReason: any, version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => Promise<IVersionedData<VersionedLayoutDefinition>>>;
        discardDefinition: import("./Store").StoreAction<unknown, (version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (result: IVersionedData<VersionedLayoutDefinition>, version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (failureReason: any, version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => void, (version: ICheckedoutVersionedData<VersionedLayoutDefinition>) => Promise<IVersionedData<VersionedLayoutDefinition>>>;
        delete: import("./Store").StoreAction<unknown, (layout: VersionedLayout) => void, (result: VersionedLayout, layout: VersionedLayout) => void, (failureReason: any, layout: VersionedLayout) => void, (layout: VersionedLayout) => Promise<VersionedLayout>>;
        deleteAlternate: import("./Store").StoreAction<unknown, (alternateLayout: VersionedAlternateLayout) => void, (result: VersionedLayout, alternateLayout: VersionedAlternateLayout) => void, (failureReason: any, alternateLayout: VersionedAlternateLayout) => void, (alternateLayout: VersionedAlternateLayout) => Promise<VersionedLayout>>;
        updateAlternateLayout: import("./Store").StoreAction<unknown, (alternateLayout: VersionedAlternateLayout) => void, (result: VersionedLayout, alternateLayout: VersionedAlternateLayout) => void, (failureReason: any, alternateLayout: VersionedAlternateLayout) => void, (alternateLayout: VersionedAlternateLayout) => Promise<VersionedLayout>>;
        updateLayout: import("./Store").StoreAction<unknown, (layout: VersionedLayout) => void, (result: VersionedLayout, layout: VersionedLayout) => void, (failureReason: any, layout: VersionedLayout) => void, (layout: VersionedLayout) => Promise<VersionedLayout>>;
    };
    private addOrUpdateDefinitions;
    private addOrUpdateLayouts;
    private addOrUpdateMappings;
    private removeLayous;
    private removeDefinitions;
    private replaceAllLayouts;
    private removeLatestRef;
    private removeLayoutFromAppRouteCache;
    private addOrUpdateLayoutIntoAppRouteCache;
    private addOrUpdateMappingIntoAppRouteCache;
    private loadDataFromContext;
    private getMergedVersionString;
    protected onActivated(): void;
    protected onDisposing(): void;
}
