import { type ExtractPublicPropTypes } from 'vue';
import { type Size } from '../../composables/useCommon';
import { type ThemeComponent } from '../../composables/useTheme';
import type { TabGroupInjection } from './TabGroup.vue';
declare const tabProps: {
    value: {
        type: (StringConstructor | NumberConstructor)[];
    };
    tag: {
        type: StringConstructor;
        default: string;
    };
    to: (ObjectConstructor | StringConstructor)[];
    label: StringConstructor;
    icon: StringConstructor;
    disabled: BooleanConstructor;
    exact: BooleanConstructor;
    removable: BooleanConstructor;
    size: {
        readonly type: import("vue").PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
};
export type TabProps = ExtractPublicPropTypes<typeof tabProps>;
type InternalClasses = 'wrapper' | 'content' | 'label' | 'icon' | 'tabpanel';
type InternalExtraData = {
    selected: boolean;
} & Pick<TabGroupInjection, 'state'>['state'];
export interface TabTheme extends ThemeComponent<TabProps, InternalClasses, InternalExtraData> {
}
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    value: {
        type: (StringConstructor | NumberConstructor)[];
    };
    tag: {
        type: StringConstructor;
        default: string;
    };
    to: (ObjectConstructor | StringConstructor)[];
    label: StringConstructor;
    icon: StringConstructor;
    disabled: BooleanConstructor;
    exact: BooleanConstructor;
    removable: BooleanConstructor;
    size: {
        readonly type: import("vue").PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "remove"[], "remove", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    value: {
        type: (StringConstructor | NumberConstructor)[];
    };
    tag: {
        type: StringConstructor;
        default: string;
    };
    to: (ObjectConstructor | StringConstructor)[];
    label: StringConstructor;
    icon: StringConstructor;
    disabled: BooleanConstructor;
    exact: BooleanConstructor;
    removable: BooleanConstructor;
    size: {
        readonly type: import("vue").PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}>> & Readonly<{
    onRemove?: ((...args: any[]) => any) | undefined;
}>, {
    disabled: boolean;
    tag: string;
    removable: boolean;
    size: Size;
    exact: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
    tab?(_: {
        label: string | undefined;
        value: string | number | undefined;
        size: Size;
        icon: string | undefined;
    }): any;
    default?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
