import { MatchSorterOptions } from 'match-sorter';
import { MultiSelectMenuProps, MultiSelectMenuOption } from './types';
import { SyncFilterFn } from '../../../internal/functions/syncFilterUtils';
export type MultiSelectMenuSyncProps = Omit<MultiSelectMenuProps, "loadOptions" | "lazy" | "debounceMs" | "cache" | "initialLoad" | "selectAll" | "selectFiltered"> & {
    /**
     * 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<MultiSelectMenuOption> | MatchSorterOptions<MultiSelectMenuOption>;
    /**
     * 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
 * <MultiSelectMenuSync
 *   trigger={(props) => <Button {...props}>Pick books</Button>}
 *   label="Books"
 *   options={bookOptions}
 *   value={selectedOptions}
 *   onSelectedOptionsChange={setSelectedOptions}
 *   selectAll
 * />
 */
export declare const MultiSelectMenuSync: (props: MultiSelectMenuSyncProps) => import("react/jsx-runtime").JSX.Element;
