import type { CustomFilterProps, CustomFloatingFilterProps } from 'ag-grid-react'; import type { IFilter } from 'ag-grid-community'; /** * Custom AG Grid filter component — multi-select facet filter. * * The Community-friendly equivalent of AG Grid Enterprise's * `agSetColumnFilter`. Surfaces a checkbox list of every value the column * can take, so users tick to include / untick to exclude. Much faster than * the default `agTextColumnFilter` for closed enums (status, room, * operator). * * Wire on a colDef: * ```tsx * { * field: 'status', * filter: SelectFilter, * filterParams: { * options: [ * { value: 'open', label: 'Aperte' }, * { value: 'paid', label: 'Pagate' }, * ], * }, * } * ``` * * Model shape `{ type: 'set', values: Array }` matches * AG Grid Enterprise's set-filter convention so server-side adapters can * read either implementation the same way. */ export interface SelectFilterOption { value: string | number; label: string; } export interface SelectFilterModel { type: 'set'; values: Array; } export interface SelectFilterParams { options?: SelectFilterOption[]; placeholder?: string; } export declare function SelectFilter(props: CustomFilterProps & SelectFilterParams): import("react/jsx-runtime").JSX.Element; /** * Floating-filter companion for `SelectFilter`. * * Renders the kit's `` directly as the floating-filter * input — its built-in trigger + checkbox dropdown IS the filter UI. * Earlier versions wrapped MultiSelect in another ``, * producing the "click trigger → empty popover with another trigger → * click → checkbox list" double-step that read as duplicated UI. * * MultiSelect's options use `string` values; we string-convert the * model's `(string | number)[]` for the trigger and parse back on * apply. The grid model still tracks the original primitive types so * `doesFilterPass` keeps matching numeric columns correctly. * * Choices come from the same `useSelectFilterOptions` universe the popup * panel uses: an explicit `options` filterParam if the consumer declared * one, otherwise the column's own distinct values. Reading only * `filterParams.options` used to leave the trigger empty beside a working * panel whenever the consumer relied on derivation. */ export declare function SelectFloatingFilter(props: CustomFloatingFilterProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=select-filter.d.ts.map