import { MatchSorterOptions } from 'match-sorter'; import { SelectMenuProps, SelectMenuOption, SelectMenuGroupByValue } from './types'; import { SyncFilterFn } from '../../../internal/functions/syncFilterUtils'; export type SelectMenuSyncProps = Omit & { /** * The options to display in the select menu. */ options: SelectMenuOption[]; /** * Controls how options are filtered and sorted when the user types a search value. * Can be a function that returns options in the desired display order, * or a MatchSorterOptions object to customize the default match-sorter behavior. * * By default, options are filtered by `label` and `searchText` using match-sorter. */ filter?: SyncFilterFn | MatchSorterOptions; /** * Custom comparator function to sort groups. */ groupSorter?: (a: SelectMenuGroupByValue, b: SelectMenuGroupByValue) => number; }; /** * SelectMenuSync is a simplified version of SelectMenu for client-side option sets. * * Features: * - Accepts `options` instead of `loadOptions` and `lazy` * - Performs client-side filtering of the options * - Optionally accepts a custom filter function or MatchSorterOptions * - Supports grouping with optional group sorting via `groupSorter` * - Supports all other props of SelectMenu * * @example * } * label="Books" * options={bookOptions} * value={selectedOption} * onSelectedOptionChange={setSelectedOption} * /> */ export declare const SelectMenuSync: (props: SelectMenuSyncProps) => import("react/jsx-runtime").JSX.Element;