import { type FilterField, type SingleFilter, type StandardFnSchema } from "@fn-sphere/core"; export interface UpdateFilterOptions { /** * Try to continue using the current args when the field is changed. * * @default true */ tryRetainArgs?: boolean; } export interface UpdateFieldOptions extends UpdateFilterOptions { /** * Try to continue using the current filter when the field is changed. * * @default true */ tryRetainFilter?: boolean; /** * Automatically select the first filter when the field is changed and the filter is not retained. * * @default true */ autoSelectFirstFilter?: boolean; } export declare const useFilterSelect: (rule: SingleFilter) => { filterableFields: FilterField[]; selectedField: FilterField | undefined; selectedFilter: StandardFnSchema | undefined; fieldOptions: { label: string; value: FilterField; }[]; filterOptions: { label: string; value: StandardFnSchema; }[] | undefined; setField: (newField: FilterField, { tryRetainFilter, autoSelectFirstFilter, tryRetainArgs, }?: UpdateFieldOptions) => void; setFilter: (filterSchema: StandardFnSchema, { tryRetainArgs }?: UpdateFilterOptions) => void; /** * @deprecated Use {@link setField} instead */ updateField: (newField: FilterField, { tryRetainFilter, autoSelectFirstFilter, tryRetainArgs, }?: UpdateFieldOptions) => void; /** * @deprecated Use {@link setFilter} instead */ updateFilter: (filterSchema: StandardFnSchema, { tryRetainArgs }?: UpdateFilterOptions) => void; }; //# sourceMappingURL=use-filter-select.d.ts.map