import { type PropType, type ExtractPublicPropTypes, type Ref } from 'vue';
import { type Size } from '../../composables/useCommon';
import { type ThemeComponent } from '../../composables/useTheme';
declare const validators: {
    variant: readonly ["line", "block"];
    align: readonly ["left", "center", "right"];
    size: string[];
};
declare const tabGroupProps: {
    modelValue: (StringConstructor | NumberConstructor)[];
    variant: {
        type: PropType<"block" | "line">;
        default: string;
    };
    align: {
        type: PropType<"left" | "right" | "center">;
        default: string;
    };
    ghost: BooleanConstructor;
    grow: BooleanConstructor;
    exact: BooleanConstructor;
    fullWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
};
export type TabGroupInjection = {
    tabsContentRef: Ref<HTMLElement | null>;
    activateTab: (tab: string | number) => void;
    state: {
        active: string | number | undefined;
        variant: TabGroupVariant;
        ghost: boolean;
        grow: boolean;
        exact: boolean;
        size: Size;
        color: string;
    };
};
export type TabGroupVariant = typeof validators.variant[number];
export type TabGroupAlign = typeof validators.align[number];
export type TabGroupProps = ExtractPublicPropTypes<typeof tabGroupProps>;
type InternalClasses = 'wrapper' | 'list' | 'tracker' | 'scroller';
export interface TabGroupTheme extends ThemeComponent<TabGroupProps, InternalClasses> {
}
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
    modelValue: (StringConstructor | NumberConstructor)[];
    variant: {
        type: PropType<"block" | "line">;
        default: string;
    };
    align: {
        type: PropType<"left" | "right" | "center">;
        default: string;
    };
    ghost: BooleanConstructor;
    grow: BooleanConstructor;
    exact: BooleanConstructor;
    fullWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    modelValue: (StringConstructor | NumberConstructor)[];
    variant: {
        type: PropType<"block" | "line">;
        default: string;
    };
    align: {
        type: PropType<"left" | "right" | "center">;
        default: string;
    };
    ghost: BooleanConstructor;
    grow: BooleanConstructor;
    exact: BooleanConstructor;
    fullWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}>> & {
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
}, {
    color: string;
    size: Size;
    align: "left" | "right" | "center";
    ghost: boolean;
    exact: boolean;
    variant: "block" | "line";
    grow: boolean;
    fullWidth: boolean;
}, {}>, {
    default?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
