import { Schema } from '@coveo/bueno';
import { FacetResultsMustMatch } from '../../../../features/facets/facet-api/request.js';
import { FacetSortCriterion } from '../../../../features/facets/facet-set/interfaces/request.js';
export interface FacetOptions {
    /**
     * The field whose values you want to display in the facet.
     * */
    field: string;
    /**
     * A unique identifier for the controller. By default, a random unique identifier is generated.
     * */
    facetId?: string;
    /**
     * The tabs on which the facet should be enabled or disabled.
     */
    tabs?: {
        included?: string[];
        excluded?: string[];
    };
    /**
     * Facet search options.
     */
    facetSearch?: FacetSearchOptions;
    /**
     * Whether to exclude the parents of folded results when estimating the result count for each facet value.
     *
     * Note: Resulting count is only an estimation, in some cases this value could be incorrect.
     *
     * @defaultValue `true`
     */
    filterFacetCount?: boolean;
    /**
     * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.
     *
     * Note: A high `injectionDepth` may negatively impact the facet request performance.
     *
     * Minimum: `0`
     *
     * @defaultValue `1000`
     * */
    injectionDepth?: number;
    /**
     * The number of values to request for this facet. Also determines the number of additional values to request each time this facet is expanded, and the number of values to display when this facet is collapsed.
     *
     * Minimum: `1`
     *
     * @defaultValue `8`
     */
    numberOfValues?: number;
    /**
     * The criterion to use for sorting returned facet values.
     *
     * The `sortCriteria` option does not apply when making a facet search request. It is only used for sorting returned facet values during a regular Coveo search request.
     *
     * Learn more about `sortCriteria` values and the default behavior of specific facets in the [Search API documentation](https://docs.coveo.com/en/13#operation/searchUsingPost-facets-sortCriteria).
     *
     * @defaultValue `automatic`
     */
    sortCriteria?: FacetSortCriterion;
    /**
     * The criterion to use for specifying how results must match the selected facet values.
     *
     * @defaultValue `atLeastOneValue`
     */
    resultsMustMatch?: FacetResultsMustMatch;
}
export interface FacetSearchOptions {
    /**
     * A dictionary that maps index field values to facet value display names.
     */
    captions?: Record<string, string>;
    /**
     * The maximum number of values to fetch.
     *
     * @defaultValue `10`
     */
    numberOfValues?: number;
    /**
     * The query to search the facet values with.
     */
    query?: string;
}
export declare const facetOptionsSchema: Schema<Required<FacetOptions>>;
