import { IDensity, IVariant, IHideDetails } from '../models';

export type IItem = Record<string, any> | string | number;
export interface IListProps {
    color?: string;
    density?: IDensity;
    readonly?: boolean;
    transparent?: boolean;
    variant?: IVariant;
    placeholder?: string;
    persistentPlaceholder?: boolean;
    required?: boolean;
    hideMandatory?: boolean;
    hideNoData?: boolean;
    hideDetails?: IHideDetails;
    changed?: boolean;
    loading?: boolean;
    multiple?: boolean;
    chips?: boolean;
    modelValue?: any;
    items?: (IItem | string)[];
    itemTitle?: string;
    itemValue?: string;
    noDataText?: string;
    menu?: boolean;
}
export declare const useSelect: (props: IListProps, emit: {
    (event: "update:modelValue", value: any): void;
    (event: "update:menu", value: boolean): void;
}, componentClass: string) => {
    localMenu: import('vue').Ref<boolean, boolean>;
    selection: import('vue').Ref<any, any>;
    slotsList: Readonly<{
        [name: string]: import('vue').Slot<any>;
    }>;
    slots: [string, import('vue').Slot<any>][];
    showChips: import('vue').ComputedRef<any>;
    updatedProps: import('vue').ComputedRef<{
        class: (string | {
            [x: string]: any;
            "v-input--filled": boolean;
            "a-input--changed": boolean;
            "a-input--required": boolean;
        })[];
        variant: IVariant;
        placeholder: string;
        persistentPlaceholder: boolean;
        menuIcon: string;
        modelValue: any;
        menu: boolean;
        noDataText: string;
        centerAffix: boolean;
        color?: string;
        density?: IDensity;
        readonly?: boolean;
        transparent?: boolean;
        required?: boolean;
        hideMandatory?: boolean;
        hideNoData?: boolean;
        hideDetails?: IHideDetails;
        changed?: boolean;
        loading?: boolean;
        multiple?: boolean;
        chips?: boolean;
        items?: (IItem | string)[];
        itemTitle?: string;
        itemValue?: string;
        closableChips: boolean;
    }>;
    getItemTitle: (item: IItem | string) => string | ((radix?: number) => string) | (() => number) | (() => Object);
    removeItem: (item: IItem) => void;
    updateSelection: (selected?: any) => void;
    selectedItems: import('vue').ComputedRef<IItem[]>;
};
