import { Sort, FilterGroup, FilterFacet, Redirect, Relevance, Curation, Market, Antonym, Synonym, Callout, MerchandisingCalloutAutofillBehaviour } from "./firestore";
export type Config = {
    index: string;
    endpoint: string;
    cluster: string;
    version: string;
    key: string;
    cache: {
        enabled: boolean;
        seconds: number;
    };
    merchandising: {
        calloutAutofillBehaviour: MerchandisingCalloutAutofillBehaviour;
    };
    sort: Array<ConfigSort>;
    fields: Array<ConfigField>;
    filters: Array<ConfigFilter>;
    redirects: Array<ConfigRedirect>;
    curations: Array<ConfigCuration>;
    antonyms: Array<ConfigAntonym>;
    synonyms: Array<ConfigSynonym>;
    callouts: Array<ConfigCallout>;
    markets: Array<Market>;
    suggestions: {
        exclude: Array<string>;
    };
    sensors: {
        search: Array<unknown>;
        collection: Array<unknown>;
    };
};
export type ConfigAntonym = Omit<Antonym, "enabled">;
export type ConfigSynonym = Omit<Synonym, "enabled">;
export type ConfigCallout = Omit<Callout, "enabled">;
export type ConfigSort = Omit<Sort, "enabled">;
export type ConfigField = Omit<Relevance, "enabled">;
export type ConfigRedirect = Omit<Redirect, "enabled" | "keywords">;
export type ConfigFilter = Omit<FilterGroup, "enabled" | "keywords"> & {
    options: Omit<FilterFacet, "enabled">[];
};
export type ConfigFilterFacet = Omit<FilterFacet, "enabled">;
export type ConfigCuration = Omit<Curation, "keywords" | "boosting" | "longRunningTask" | "callouts"> & {
    boosting: {
        groupings: Array<(NonNullable<NonNullable<Curation["boosting"]>["groupings"]>[0] & {
            query: string;
        })>;
        sortings: Array<(NonNullable<NonNullable<Curation["boosting"]>["sortings"]>[0] & {
            query: string;
        })>;
    };
};
