import { IMessageBusSubscriptionHandler, MultilingualString, MultilingualScopes, ScopedLanguageSetting, IMultilingualStore } from "../models";
import { Store } from "./Store";
export declare class MultilingualStore extends Store implements IMultilingualStore {
    private localizationService;
    private omniaContext;
    private subscriptionHandler;
    private userPreferredLanguage;
    private scopeLanguages;
    getters: {
        languageSetting: (scope: MultilingualScopes) => ScopedLanguageSetting;
        onLanguageSettingUpdated: () => (fn: (obj: import("@omnia/fx-models").StateMutation<{
            [multilingualScope: number]: ScopedLanguageSetting;
        }>) => void) => IMessageBusSubscriptionHandler;
        /**
         * Checks if the value as a string or MulitlingualString. A MultilingualString is always ensured.
         * @param value - The string value or MulitlingualString value to ensure
         */
        ensureMultilingualString: (value: string | MultilingualString) => MultilingualString;
        /**
         * Get the string value based on current language settings
         * @param multilingualString - The string values to select from
         * @param scope - The scope for which language settings to use
         */
        stringValue: (multilingualString: MultilingualString, scope?: MultilingualScopes) => string;
    };
    private internalMutations;
    private actions;
    private tryGetMultilingualValue;
    private createScopedLanguageSetting;
    protected onActivated(): void;
    protected onDisposing(): void;
}
