import { MatchSorterOptions } from 'match-sorter';
import { SelectMenuProps, SelectMenuOption, SelectMenuGroupByValue } from './types';
import { SyncFilterFn } from '../../internal/functions/syncFilterUtils';
export type SelectMenuSyncProps = Omit<SelectMenuProps, "loadOptions" | "lazy" | "debounceMs" | "cache" | "initialLoad"> & {
    /**
     * 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<SelectMenuOption>;
    /**
     * 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
 * <SelectMenuSync
 *   trigger={(props) => <Button {...props}>Pick a book</Button>}
 *   label="Books"
 *   options={bookOptions}
 *   value={selectedOption}
 *   onSelectedOptionChange={setSelectedOption}
 * />
 */
export declare const SelectMenuSync: (props: SelectMenuSyncProps) => import("react/jsx-runtime").JSX.Element;
