import { ConfigOptionType, ExtractValueType, OptionValueType } from '../../types';
declare const _default: <Option extends OptionValueType, Config extends ConfigOptionType<Option>, Model extends ExtractValueType<Option, Config>>(__VLS_props: {
    lazy?: boolean | undefined;
    readonly onChange?: ((option: Option) => any) | undefined;
    options?: Option[] | undefined;
    modelValue: Model;
    dataTestName?: string | undefined;
    readonly "onUpdate:modelValue"?: ((model: Model) => any) | undefined;
    config?: Config | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
    attrs: any;
    slots: Partial<Record<NonNullable<[{
        type: import("vue").PropType<Model>;
        required: true;
    }] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? keyof V extends never ? import("@vue/shared").IfAny<V, V, D> : V : V : {
        type: import("vue").PropType<Model>;
        required: true;
    }>, (_: {
        tab: Model;
    }) => any>> & Partial<Record<NonNullable<ExtractValueType<Option, Config>>, (_: {
        tab: Option;
        index: number;
    }) => any>>;
    emit: {
        (e: 'update:modelValue', model: Model): void;
        (e: 'change', option: Option): void;
    };
} | undefined, __VLS_expose?: ((exposed: import('vue').ShallowUnwrapRef<{}>) => void) | undefined, __VLS_setup?: Promise<{
    props: {
        lazy?: boolean | undefined;
        readonly onChange?: ((option: Option) => any) | undefined;
        options?: Option[] | undefined;
        modelValue: Model;
        dataTestName?: string | undefined;
        readonly "onUpdate:modelValue"?: ((model: Model) => any) | undefined;
        config?: Config | undefined;
    } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: Partial<Record<NonNullable<[{
        type: import("vue").PropType<Model>;
        required: true;
    }] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? keyof V extends never ? import("@vue/shared").IfAny<V, V, D> : V : V : {
        type: import("vue").PropType<Model>;
        required: true;
    }>, (_: {
        tab: Model;
    }) => any>> & Partial<Record<NonNullable<ExtractValueType<Option, Config>>, (_: {
        tab: Option;
        index: number;
    }) => any>>;
    emit: {
        (e: 'update:modelValue', model: Model): void;
        (e: 'change', option: Option): void;
    };
}>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: {
        props: {
            lazy?: boolean | undefined;
            readonly onChange?: ((option: Option) => any) | undefined;
            options?: Option[] | undefined;
            modelValue: Model;
            dataTestName?: string | undefined;
            readonly "onUpdate:modelValue"?: ((model: Model) => any) | undefined;
            config?: Config | undefined;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
        expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
        attrs: any;
        slots: Partial<Record<NonNullable<[{
            type: import("vue").PropType<Model>;
            required: true;
        }] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? keyof V extends never ? import("@vue/shared").IfAny<V, V, D> : V : V : {
            type: import("vue").PropType<Model>;
            required: true;
        }>, (_: {
            tab: Model;
        }) => any>> & Partial<Record<NonNullable<ExtractValueType<Option, Config>>, (_: {
            tab: Option;
            index: number;
        }) => any>>;
        emit: {
            (e: 'update:modelValue', model: Model): void;
            (e: 'change', option: Option): void;
        };
    } | undefined;
};
export default _default;
type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};
