import { type PropType, type Ref, type SetupContext, type WatchSource } from 'vue'; interface SetOptions { items: T[]; } export declare function useSet(options: SetOptions): { values: Set; add: (item: T) => void; toggle: (item: T) => void; remove: (item: T) => void; clear: () => void; updated: Ref; equals: (items: T[]) => boolean; }; export interface SelectOptions extends SetOptions { multiple?: boolean; itemText?: string | ((item: T) => string); itemValue?: string | ((item: T) => V); cols?: number; } export declare function selectProps(): { modelValue: { type: PropType; }; selection: { type: StringConstructor; }; clearable: { type: BooleanConstructor; default: boolean; }; items: { type: PropType; default: () => never[]; }; multiple: { type: BooleanConstructor; default: boolean; }; cols: { type: NumberConstructor; default: number; }; itemText: { type: PropType string)>; default: string; }; itemValue: { type: PropType V)>; default: string; }; disabled: { type: BooleanConstructor; default: boolean; }; }; export declare function useSelect(options: SelectOptions): { select: (item: T) => void; selected: Ref; selectedStr: Ref; itemRows: (T | null)[][]; setItems: (items: T[]) => void; setValues: (values: V[] | V) => void; isEmpty: import("vue").ComputedRef; has: (item: T | null) => boolean; values: Set; add: (item: T) => void; toggle: (item: T) => void; remove: (item: T) => void; clear: () => void; updated: Ref; equals: (items: T[]) => boolean; }; /** * @interface */ export type UseSelectReturn = ReturnType>; export declare function setupSelect(options: SelectOptions, modelValue: WatchSource, { emit }: SetupContext<['update:model-value']>): UseSelectReturn; export declare const RenderlessSelect: import("vue").DefineComponent<{ modelValue: { type: (ArrayConstructor | StringConstructor | NumberConstructor)[]; }; selection: { type: StringConstructor; }; clearable: { type: BooleanConstructor; default: boolean; }; items: { type: PropType; default: () => never[]; }; multiple: { type: BooleanConstructor; default: boolean; }; cols: { type: NumberConstructor; default: number; }; itemText: { type: PropType string)>; default: string; }; itemValue: { type: PropType any)>; default: string; }; disabled: { type: BooleanConstructor; default: boolean; }; }, () => import("vue").VNode[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly; default: () => never[]; }; multiple: { type: BooleanConstructor; default: boolean; }; cols: { type: NumberConstructor; default: number; }; itemText: { type: PropType string)>; default: string; }; itemValue: { type: PropType any)>; default: string; }; disabled: { type: BooleanConstructor; default: boolean; }; }>> & { "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; }, { items: any[]; cols: number; disabled: boolean; multiple: boolean; itemText: string | ((item: any) => string); itemValue: string | ((item: any) => any); clearable: boolean; }, {}>; export {}; //# sourceMappingURL=select.d.ts.map