import type { IListOfLanguagesScopesAndFields } from '../services/api/DataHub/Datahub.models';
import { type IAvailableLocale } from '../services/api/Start/Locale';
interface IDictionaryState {
    fetchingLocales: Promise<IAvailableLocale[]> | null;
    fetchingCountries: Promise<Record<string, string>> | null;
    locales: IAvailableLocale[];
    selectedLocaleId: string;
    countryFlags: Record<string, string>;
    languagesAndScopes: Record<string, Promise<IListOfLanguagesScopesAndFields>>;
}
export declare const useDatahubDictionaryStore: import("pinia").StoreDefinition<"datahub-dictionary", IDictionaryState, {
    getCountryFlag: (state: {
        fetchingLocales: {
            then: <TResult1 = IAvailableLocale[], TResult2 = never>(onfulfilled?: (value: IAvailableLocale[]) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>;
            catch: <TResult = never>(onrejected?: (reason: any) => TResult | PromiseLike<TResult>) => Promise<IAvailableLocale[] | TResult>;
            finally: (onfinally?: () => void) => Promise<IAvailableLocale[]>;
            readonly [Symbol.toStringTag]: string;
        };
        fetchingCountries: {
            then: <TResult1_1 = Record<string, string>, TResult2_1 = never>(onfulfilled?: (value: Record<string, string>) => TResult1_1 | PromiseLike<TResult1_1>, onrejected?: (reason: any) => TResult2_1 | PromiseLike<TResult2_1>) => Promise<TResult1_1 | TResult2_1>;
            catch: <TResult_1 = never>(onrejected?: (reason: any) => TResult_1 | PromiseLike<TResult_1>) => Promise<Record<string, string> | TResult_1>;
            finally: (onfinally?: () => void) => Promise<Record<string, string>>;
            readonly [Symbol.toStringTag]: string;
        };
        locales: {
            id: string;
            locale: string;
            localePrimaryLanguage: string;
            localeRegion: string;
            canonicalName: string;
            icon?: string;
        }[];
        selectedLocaleId: string;
        countryFlags: Record<string, string>;
        languagesAndScopes: Record<string, Promise<IListOfLanguagesScopesAndFields>>;
    } & import("pinia").PiniaCustomStateProperties<IDictionaryState>) => (country?: string) => string;
    localesWithIcon(): Record<string, IAvailableLocale & {
        icon?: string;
    }>;
}, {
    getAttributeByKey(controller: string, attributeKey: string): Promise<any>;
    fetchLanguagesAndScopes<T extends IListOfLanguagesScopesAndFields>(controller: string, api?: () => Promise<T>): Promise<any>;
    fetchLocales(): Promise<IAvailableLocale[]>;
    fetchCountries(): Promise<any>;
    ensureLocales(): Promise<any>;
    ensureCountries(): Promise<any>;
}>;
export {};
