import type { Ref } from 'vue-demi';
export interface ISelectItem {
    text: string;
    value: unknown;
    disabled?: boolean;
    [key: string]: unknown;
}
export interface ISelectProps {
    modelValue: unknown;
    selected?: ISelectItem;
    options?: ISelectItem[] | string[];
    isShowMore?: boolean;
}
export interface IAdapterContext {
    props: ISelectProps;
    keyword: Ref<string>;
    isOpen: Ref<boolean>;
    isLoading: Ref<boolean>;
    menuEl: Ref<HTMLDivElement>;
    isLoadMore?: Ref<boolean>;
    isDone?: Ref<boolean>;
}
export interface IAdapter {
    setup: (context: IAdapterContext) => Ref<ISelectItem[]>;
}
/**
 * normalizing props.options to SelectItem[]
 */
export declare function useOptionsProp(props: ISelectProps): import("vue-demi").ComputedRef<ISelectItem[]>;
export declare function defineAdapter(adapter: IAdapter): IAdapter;
