type SelectValue = string | number;
type UseMultiSelectDraftValueParams<T extends SelectValue> = {
    value: T[];
    optionIds: T[];
    onChange: (value: T[]) => void;
};
type UseMultiSelectDraftValueResult<T extends SelectValue> = {
    value: T[];
    onChange: (value: T[]) => void;
    startInteraction: () => void;
    endInteraction: () => void;
};
/**
 * Filters persist "no filter" as an empty array/undefined, but the multiselect
 * should still look like "All" when closed. While the dropdown is open, keep a
 * separate draft so users can clear everything and hand-pick new values.
 */
export declare const useMultiSelectDraftValue: <T extends SelectValue>({ value, optionIds, onChange, }: UseMultiSelectDraftValueParams<T>) => UseMultiSelectDraftValueResult<T>;
export {};
//# sourceMappingURL=useMultiSelectDraftValue.d.ts.map