import type { RangeFacetRangeAlgorithm, RangeFacetSortCriterion } from '../generic/interfaces/request.js';
import type { NumericRangeRequest } from './interfaces/request.js';
import type { NumericFacetValue } from './interfaces/response.js';
export interface RegisterNumericFacetActionCreatorPayload {
    /**
     * A unique identifier for the numeric facet.
     */
    facetId: string;
    /**
     * The field from which to display values in the facet.
     */
    field: string;
    /**
     * The tabs on which the facet should be enabled or disabled.
     */
    tabs?: {
        included?: string[];
        excluded?: string[];
    };
    /**
     * @deprecated - This field is unused and should not be relied on.
     * If you need the currently active tab, use the TabManager instead.
     *
     * This property will be removed in version 4.0.
     */
    activeTab?: string;
    /**
     * Whether the index should automatically create range values.
     *
     * Tip: If you set this parameter to true, ensure that the ['Use cache for numeric queries' option](https://docs.coveo.com/en/1833#use-cache-for-numeric-queries) is enabled for this facet's field in your index in order to speed up automatic range evaluation.
     */
    generateAutomaticRanges: boolean;
    /**
     * The values displayed by the facet in the search interface at the moment of the request.
     *
     * If `generateAutomaticRanges` is false, values must be specified.
     * If `generateAutomaticRanges` is true, automatic ranges are going to be appended after the specified values.
     *
     * @defaultValue `[]`
     */
    currentValues?: NumericRangeRequest[];
    /**
     * Whether to exclude folded result parents 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 sort criterion to apply to the returned facet values.
     *
     * @defaultValue `ascending`
     */
    sortCriteria?: RangeFacetSortCriterion;
    /**
     * The range algorithm to apply to automatically generated ranges for the range facet.
     *
     * @defaultValue `even`
     */
    rangeAlgorithm?: RangeFacetRangeAlgorithm;
}
export declare function validateManualNumericRanges(options: Pick<RegisterNumericFacetActionCreatorPayload, 'currentValues'>): void;
export declare const registerNumericFacet: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: RegisterNumericFacetActionCreatorPayload], RegisterNumericFacetActionCreatorPayload, "numericFacet/register", import("@reduxjs/toolkit").SerializedError | null, never>;
export interface ToggleSelectNumericFacetValueActionCreatorPayload {
    /**
     * The unique identifier of the facet (e.g., `"1"`).
     */
    facetId: string;
    /**
     * The target numeric facet value.
     */
    selection: NumericFacetValue;
}
export declare const toggleSelectNumericFacetValue: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ToggleSelectNumericFacetValueActionCreatorPayload], ToggleSelectNumericFacetValueActionCreatorPayload, "numericFacet/toggleSelectValue", never, never>;
export declare const toggleExcludeNumericFacetValue: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ToggleSelectNumericFacetValueActionCreatorPayload], ToggleSelectNumericFacetValueActionCreatorPayload, "numericFacet/toggleExcludeValue", never, never>;
export interface UpdateNumericFacetValuesActionCreatorPayload {
    /**
     * The unique identifier of the facet (e.g., `"1"`).
     */
    facetId: string;
    /**
     * The numeric facet values.
     */
    values: NumericFacetValue[];
}
export declare const updateNumericFacetValues: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: UpdateNumericFacetValuesActionCreatorPayload], UpdateNumericFacetValuesActionCreatorPayload, "numericFacet/updateFacetValues", import("@reduxjs/toolkit").SerializedError | null, never>;
export interface UpdateNumericFacetSortCriterionActionCreatorPayload {
    /**
     * The unique identifier of the facet (e.g., `"1"`).
     */
    facetId: string;
    /**
     * The target criterion.
     */
    criterion: RangeFacetSortCriterion;
}
export declare const updateNumericFacetSortCriterion: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
    facetId: string;
    criterion: RangeFacetSortCriterion;
}], {
    facetId: string;
    criterion: RangeFacetSortCriterion;
}, "rangeFacet/updateSortCriterion", never, never>;
export declare const deselectAllNumericFacetValues: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: string], string, "facet/deselectAll", never, never>;
