import { OmniaContext } from "../..";
import { Store } from "../../stores";
import { ThemeDefinitionSettings, ThemeDefinition, ThemeTargetRegistration, ThemeTargetMapping } from "../../models";
import { IMessageBusSubscriptionHandler, GuidValue } from "../../models";
import { OmniaTheming } from "../OmniaTheming";
import { SettingsService, LocalizationService } from "../../services";
import { Theming } from "./Theming";
declare class InternalThemeStore extends Store {
    showThemeDefinitionEditor: import("../../stores").StoreState<boolean>;
    themeDefinitions: import("../../stores").StoreState<ThemeDefinition[]>;
    themeTargetRegistrations: import("../../stores").StoreState<ThemeTargetRegistration[]>;
    themeTargetMappings: import("../../stores").StoreState<ThemeTargetMapping[]>;
    themingInstances: import("../../stores").StoreState<Theming[]>;
    protected onActivated(): void;
}
export declare class ThemeStore extends Store {
    internal: InternalThemeStore;
    omniaCtx: OmniaContext;
    subscriptionHandler: IMessageBusSubscriptionHandler;
    omniaTheming: OmniaTheming;
    protected settingsService: SettingsService<ThemeDefinitionSettings>;
    localizationService: LocalizationService;
    private currentBusinessProfile;
    private settingsKey;
    private static themeSettingsKey;
    private areThemeDefinitionsLoaded;
    get showThemeDefinitionEditor(): import("../../stores").StoreState<boolean>;
    onActivated(): void;
    onDisposing(): void;
    private updateSettingsKey;
    private loadThemeMappingsForBusinessProfile;
    private ensureThemeTargetMappings;
    /** Implementation of Getters */
    getters: {
        getThemingById: (id: GuidValue) => Theming;
        getThemingByTargetId: (themeTargetId: GuidValue) => Theming;
        getThemingByTargetIdWithFallback: (themeTargetId: GuidValue) => Theming;
        getAllThemeTargetMappings: () => ThemeTargetMapping[];
        getThemeTargetMappingById: (id: GuidValue) => ThemeTargetMapping;
        getAllThemeDefinitions: () => ThemeDefinition[];
        getThemeDefinitionById: (id: GuidValue) => ThemeDefinition;
        getThemeTargetRegistrationsById: (id: GuidValue) => ThemeTargetRegistration;
        getAllThemeTargetRegistrations: () => ThemeTargetRegistration[];
    };
    mutations: {
        addThemingInstance: import("../../stores").StoreMutation<(theming: Theming) => void, (theming: Theming) => IMessageBusSubscriptionHandler>;
        deleteThemingInstance: import("../../stores").StoreMutation<(theming: Theming) => void, (theming: Theming) => IMessageBusSubscriptionHandler>;
        createThemeTargetMappingForRegistration: import("../../stores").StoreMutation<(themeTargetRegistration: ThemeTargetRegistration) => void, (themeTargetRegistration: ThemeTargetRegistration) => IMessageBusSubscriptionHandler>;
        addThemeTargetRegistration: import("../../stores").StoreMutation<(themeTargetRegistration: ThemeTargetRegistration) => void, (themeTargetRegistration: ThemeTargetRegistration) => IMessageBusSubscriptionHandler>;
        removeAllCustomThemeDefintions: import("../../stores").StoreMutation<() => void, () => IMessageBusSubscriptionHandler>;
        addThemeDefinition: import("../../stores").StoreMutation<(theme: ThemeDefinition, forceUpdate?: boolean) => void, (theme: ThemeDefinition, forceUpdate?: boolean) => IMessageBusSubscriptionHandler>;
    };
    actions: {
        updateThemeTargetMapping: import("../../stores").StoreAction<unknown, (themeTargetMapping: ThemeTargetMapping) => void, (result: void, themeTargetMapping: ThemeTargetMapping) => void, (failureReason: any, themeTargetMapping: ThemeTargetMapping) => void, (themeTargetMapping: ThemeTargetMapping) => Promise<void>>;
        ensureThemeDefinitions: import("../../stores").StoreAction<unknown, () => void, (result: void) => void, (failureReason: any) => void, () => Promise<void>>;
        saveThemeDefintion: import("../../stores").StoreAction<unknown, (themeDefinition: ThemeDefinition) => void, (result: void, themeDefinition: ThemeDefinition) => void, (failureReason: any, themeDefinition: ThemeDefinition) => void, (themeDefinition: ThemeDefinition) => Promise<void>>;
        deleteThemeDefintion: import("../../stores").StoreAction<unknown, (themeDefinition: ThemeDefinition) => void, (result: void, themeDefinition: ThemeDefinition) => void, (failureReason: any, themeDefinition: ThemeDefinition) => void, (themeDefinition: ThemeDefinition) => Promise<void>>;
    };
    private updateBusinessProfileThemeMapping;
}
export {};
