import { SelectableCollection, SelectableData } from '../models'; import { Icon } from 'itlab-icons'; import { MaybeRefOrGetter, ModelRef, WritableComputedRef } from 'vue'; type SharedPropsAndConfig = { placeholder?: TValue | string; preventUndefined?: boolean; search?: boolean | string; keepOpen?: boolean; isResetable?: boolean; }; export type SelectableProps = SharedPropsAndConfig & { dataset?: SelectableData[] | SelectableCollection; }; export type SelectableConfig = SharedPropsAndConfig & { selection: ModelRef | WritableComputedRef; dataset: MaybeRefOrGetter[] | SelectableCollection | undefined>; icon?: Icon; }; export type Selectable = { dataset: SelectableData[]; hasSelectables: boolean; selectionCount: number; hasSelection: boolean; isSelected: (value: TData) => boolean; toggleIsSelected: (value: TData) => void; isResetable: boolean | undefined; resetSelection: () => void; displayLabel: string | undefined; displayLabelCount: string | undefined; displayDescription: string | undefined; displayIcon: Icon | undefined; displayPlaceholder: string | undefined; hasSearch: boolean; searchQuery: string; searchPlaceholder: string; keepOpen: (data: TData) => boolean; }; export declare function useSelectable(cfg: SelectableConfig): Selectable; export {};