export type SortOrder = 'asc' | 'desc';
export type SortByOptions = string | string[];
export type SortOrderOptions = SortOrder | SortOrder[];
export type SearchOperator = 'and' | 'or';
export type FromToRange = {
    from?: number;
    to?: number;
};
export type MinMaxRange = {
    min?: number;
    max?: number;
};
export type PagingSettings = {
    page: number;
    pageSize: number;
    sortBy: SortByOptions;
    sortOrder: SortOrderOptions;
};
export type AutocompleteSettings = {
    size: number;
    field?: string;
    prefix?: string;
};
export type PersonalizationEvent = {
    [key: string]: string;
};
export type FuzzyMatch = boolean | 'auto' | 'retry';
export type Settings = {
    keyword: string;
    callback: (() => void) | null;
    throttleTimeMs: number;
    fuzzy: FuzzyMatch;
    paging: PagingSettings;
    customFieldFilters: string[];
    userToken: string | null;
    suggestionsSize: number;
    facetFields: string[];
    autocomplete: AutocompleteSettings;
    searchOperator: SearchOperator | null;
    enableLogicalOperators: boolean;
    cacheResponseTime: number | null;
    statsRequestIntercepted: boolean;
    suggestionsPrefix?: string;
    lang?: string;
    postfixWildcard?: boolean;
    collectAnalytics?: boolean;
    analyticsTag?: string;
    categories?: string;
    filterObject?: object;
    priceFromCents?: string;
    priceToCents?: string;
    dateFrom?: string;
    dateTo?: string;
    jwt?: string;
    personalizationEvents?: PersonalizationEvent[];
    resultType?: 'organic' | null;
    hierarchicalFacetSetting?: object;
    rangeFacets?: Array<{
        field: string;
        ranges: FromToRange[];
    }>;
    statsFields?: string[];
    numFacets?: number;
    shuffleAndLimitTo?: number;
    apiMethod?: ApiMethod;
};
export type ApiMethod = 'GET' | 'POST';
declare class SettingsManager {
    private settings;
    constructor();
    getSettings(): Settings;
    setKeyword(keyword: string): void;
    setCallback(cb: (() => void) | null): void;
    setThrottleTime(delay: number): void;
    setSuggestionsPrefix(prefix: string): void;
    setSuggestionsSize(size: number): void;
    setAutocompleteSize(size: number): void;
    setAutocompleteParams(field: string, prefix: string): void;
    setLanguage(language: string): void;
    setFuzzyMatch(fuzzy: boolean | 'auto' | 'retry'): void;
    enableLogicalOperators(enable: boolean): void;
    setCacheResponseTime(cacheResponseTime: number | null): void;
    setPostfixWildcard(wildcard: boolean): void;
    setCollectAnalytics(collectAnalytics: boolean): void;
    setAnalyticsTag(tagName: string): void;
    setCategoryFilters(categories: string): void;
    setFilterObject(filter: object): void;
    setPriceRangeFilter(minCents: string, maxCents: string): void;
    addCustomFieldFilter(fieldName: string, value: string): void;
    removeCustomFieldFilter(fieldName: string, value?: string): void;
    setDateFilter(dateFrom: string, dateTo: string): void;
    setJWT(jwt: string): void;
    setUserToken(token: string): void;
    setPersonalizationEvents(events: PersonalizationEvent[]): void;
    setResultType(type: 'organic' | null): void;
    addFacetField(field: string): void;
    addHierarchicalFacetSetting(setting: object): void;
    addRangeFacet(field: string, ranges: FromToRange[]): void;
    addStatsField(field: string): void;
    setNumberOfFacets(numFacets: number): void;
    setPaging(page: number, pageSize: number, sortBy: SortByOptions, sortOrder: SortOrderOptions): void;
    setShuffleAndLimitTo(shuffleAndLimitTo: number): void;
    nextPage(): void;
    previousPage(): void;
    setSearchOperator(operator: SearchOperator): void;
    setStatsRequestIntercepted(isIntercepted: boolean): void;
    setApiMethod(method: ApiMethod): void;
}
export default SettingsManager;
//# sourceMappingURL=settings.d.ts.map