import { NullableResultPromise } from "../base-types";
import CultureInfo from "../culture-info";
import { IExtendedContentHubClient } from "./extended-client";
/**
 * Allows fetching culture information.
 */
export interface ICultureLoader {
    /**
     * Gets the default culture.
     * @returns The default culture.
     */
    getDefaultCultureAsync(): NullableResultPromise<CultureInfo>;
    /**
     * Gets the default culture (cached).
     * @returns The default cached culture.
     */
    getDefaultCultureCachedAsync(): NullableResultPromise<CultureInfo>;
    /**
     * Gets all installed cultures (cached).
     * @returns All cached cultures.
     */
    getAllCulturesCachedAsync(): Promise<Array<CultureInfo>>;
    /**
     * Gets all installed cultures.
     * @returns All cultures.
     */
    getAllCulturesAsync(): Promise<Array<CultureInfo>>;
}
export declare class CultureLoader implements ICultureLoader {
    private readonly _client;
    private readonly _cultureCache;
    private static readonly _loadConfig;
    private static readonly _query;
    constructor(client: IExtendedContentHubClient);
    getDefaultCultureAsync(): NullableResultPromise<CultureInfo>;
    getDefaultCultureCachedAsync(): NullableResultPromise<CultureInfo>;
    getAllCulturesAsync(): Promise<Array<CultureInfo>>;
    getAllCulturesCachedAsync(): Promise<Array<CultureInfo>>;
    private queryCultureAsync;
    private static extractDefaultCulture;
}
