import { MatchSorterOptions } from 'match-sorter'; import { MultiSelectMenuProps, MultiSelectMenuOption } from './types'; import { SyncFilterFn } from '../../../internal/functions/syncFilterUtils'; export type MultiSelectMenuSyncProps = Omit & { /** * The options to display in the multi-select menu. */ options: MultiSelectMenuOption[]; /** * 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; /** * Enables the "Select All" option at the top of the list. * Can be a boolean to enable with default label, or an object to customize the label. * Click handling and check state are managed automatically. */ selectAll?: boolean | { label?: string | ((checked: boolean) => string); }; /** * Enables the "Select Filtered" option when a search term is active. * Can be a boolean to enable with default label, or a function returning a config with a custom label. * Click handling and check state are managed automatically. */ selectFiltered?: boolean | ((searchValue: string) => { label?: string; }); }; /** * MultiSelectMenuSync is a simplified version of MultiSelectMenu for client-side option sets. * * Features: * - Accepts `options` instead of `loadOptions` and `lazy` * - Performs client-side filtering of the options * - Simplified `selectAll` prop that automatically handles click and check state * - Simplified `selectFiltered` prop that automatically selects/deselects filtered options * - Supports all other props of MultiSelectMenu * * @example * } * label="Books" * options={bookOptions} * value={selectedOptions} * onSelectedOptionsChange={setSelectedOptions} * selectAll * /> */ export declare const MultiSelectMenuSync: (props: MultiSelectMenuSyncProps) => import("react/jsx-runtime").JSX.Element;