import { type Ref } from 'vue'; export declare function useModelBinding(opts: { modelValue: Ref; multiple: Ref; trackBy: Ref any) | undefined>; bindProperty: Ref; rawItems: Ref; /** * Same predicate `removeItem` honours. Clearing reaches the same state by a * different door — the × button, Backspace and the exposed clear() — so it * has to respect locked items too, or the lock is trivially bypassed. */ lockChoice?: Ref<((item: any) => boolean) | undefined>; emit: (event: string, ...args: any[]) => void; }): { selected: Ref; commits: Ref; isItemSelected: (item: any) => boolean; createSelectionMatcher: () => (item: any) => boolean; selectItem: (item: any) => void; removeItem: (item: any) => void; clearSelection: () => void; itemsEqual: (a: any, b: any, memo?: Map) => boolean; };