import { Ref, ComponentInternalInstance } from '@vue/composition-api';
import { VNode } from 'vue';
import { TdSelectProps, TdOptionProps, SelectValue } from '../type';
import { KeysType } from '../../common';
export default function useSelectOptions(props: TdSelectProps, instance: ComponentInternalInstance, keys: Ref<KeysType>): {
    options: Ref<({
        checkAll?: boolean;
        content?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
        default?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
        disabled?: boolean;
        label?: string;
        title?: string;
        value?: string | number | boolean;
        index?: number;
        slots?: () => VNode;
    } | {
        group: string;
        children: {
            checkAll?: boolean;
            content?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
            default?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
            disabled?: boolean;
            label?: string;
            title?: string;
            value?: string | number | boolean;
        }[];
        divider?: boolean;
        label?: string;
        index?: number;
        slots?: () => VNode;
    })[]>;
    optionsMap: import("@vue/composition-api").ComputedRef<Map<SelectValue<import("../type").SelectOption>, TdOptionProps>>;
    optionsList: import("@vue/composition-api").ComputedRef<TdOptionProps[]>;
    optionsCache: Ref<({
        checkAll?: boolean;
        content?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
        default?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
        disabled?: boolean;
        label?: string;
        title?: string;
        value?: string | number | boolean;
        index?: number;
        slots?: () => VNode;
    } | {
        group: string;
        children: {
            checkAll?: boolean;
            content?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
            default?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
            disabled?: boolean;
            label?: string;
            title?: string;
            value?: string | number | boolean;
        }[];
        divider?: boolean;
        label?: string;
        index?: number;
        slots?: () => VNode;
    })[]>;
};
