import type { PropType } from 'vue'; import type { GenericProps } from "../../util/index.js"; export type TabItem = string | number | Record; export type VTabsSlot = { item: T; }; export type VTabsSlots = { default: never; tab: VTabsSlot; item: VTabsSlot; window: never; } & { [key: `tab.${string}`]: VTabsSlot; [key: `item.${string}`]: VTabsSlot; }; export declare const makeVTabsProps: (defaults?: Defaults | undefined) => { tag: unknown extends Defaults["tag"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : NonNullable | Defaults["tag"]; }; density: unknown extends Defaults["density"] ? { type: PropType; default: string; validator: (v: any) => boolean; } : Omit<{ type: PropType; default: string; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : NonNullable | Defaults["density"]; }; modelValue: unknown extends Defaults["modelValue"] ? { type: null; default: undefined; } : Omit<{ type: null; default: undefined; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["modelValue"] ? any : any; }; multiple: unknown extends Defaults["multiple"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["multiple"] ? boolean : boolean | Defaults["multiple"]; }; mandatory: unknown extends Defaults["mandatory"] ? { type: PropType; default: NonNullable; } : Omit<{ type: PropType; default: NonNullable; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["mandatory"] ? boolean | "force" : NonNullable | Defaults["mandatory"]; }; max: unknown extends Defaults["max"] ? NumberConstructor : { type: PropType; default: unknown extends Defaults["max"] ? number : number | Defaults["max"]; }; selectedClass: unknown extends Defaults["selectedClass"] ? Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: string; } : Omit; default: string; }, "type" | "default"> & { type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["selectedClass"] ? string : string | Defaults["selectedClass"]; }; disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]; }; mobile: unknown extends Defaults["mobile"] ? Omit<{ type: PropType; default: boolean; }, "type" | "default"> & { type: PropType; default: NonNullable | null; } : Omit; default: boolean; }, "type" | "default"> & { type: PropType; default: NonNullable | null; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["mobile"] ? boolean | null : NonNullable | Defaults["mobile"]; }; mobileBreakpoint: unknown extends Defaults["mobileBreakpoint"] ? PropType : { type: PropType; default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : NonNullable | Defaults["mobileBreakpoint"]; }; class: unknown extends Defaults["class"] ? PropType : { type: PropType; default: unknown extends Defaults["class"] ? any : any; }; style: unknown extends Defaults["style"] ? { type: PropType; default: null; } : Omit<{ type: PropType; default: null; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["style"] ? import("vue").StyleValue : NonNullable | Defaults["style"]; }; centerActive: unknown extends Defaults["centerActive"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["centerActive"] ? boolean : boolean | Defaults["centerActive"]; }; contentClass: unknown extends Defaults["contentClass"] ? null : { type: PropType; default: unknown extends Defaults["contentClass"] ? any : any; }; direction: unknown extends Defaults["direction"] ? { type: PropType<"horizontal" | "vertical">; default: string; } : Omit<{ type: PropType<"horizontal" | "vertical">; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["direction"] ? "horizontal" | "vertical" : NonNullable<"horizontal" | "vertical"> | Defaults["direction"]; }; symbol: unknown extends Defaults["symbol"] ? { type: null; default: import("vue").InjectionKey; } : Omit<{ type: null; default: import("vue").InjectionKey; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["symbol"] ? any : any; }; nextIcon: unknown extends Defaults["nextIcon"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["nextIcon"] ? import("../../composables/icons.js").IconValue : NonNullable | Defaults["nextIcon"]; }; prevIcon: unknown extends Defaults["prevIcon"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["prevIcon"] ? import("../../composables/icons.js").IconValue : NonNullable | Defaults["prevIcon"]; }; showArrows: unknown extends Defaults["showArrows"] ? { type: (StringConstructor | BooleanConstructor)[]; validator: (v: any) => boolean; } : Omit<{ type: (StringConstructor | BooleanConstructor)[]; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["showArrows"] ? string | boolean : NonNullable | Defaults["showArrows"]; }; alignTabs: unknown extends Defaults["alignTabs"] ? { type: PropType<"start" | "title" | "center" | "end">; default: string; } : Omit<{ type: PropType<"start" | "title" | "center" | "end">; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["alignTabs"] ? "center" | "end" | "start" | "title" : Defaults["alignTabs"] | NonNullable<"center" | "end" | "start" | "title">; }; color: unknown extends Defaults["color"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["color"] ? string : string | Defaults["color"]; }; fixedTabs: unknown extends Defaults["fixedTabs"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["fixedTabs"] ? boolean : boolean | Defaults["fixedTabs"]; }; items: unknown extends Defaults["items"] ? { type: PropType; default: () => never[]; } : Omit<{ type: PropType; default: () => never[]; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["items"] ? readonly TabItem[] : readonly TabItem[] | Defaults["items"]; }; stacked: unknown extends Defaults["stacked"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["stacked"] ? boolean : boolean | Defaults["stacked"]; }; bgColor: unknown extends Defaults["bgColor"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"]; }; grow: unknown extends Defaults["grow"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["grow"] ? boolean : boolean | Defaults["grow"]; }; height: unknown extends Defaults["height"] ? { type: (StringConstructor | NumberConstructor)[]; default: undefined; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: undefined; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["height"] ? string | number : NonNullable | Defaults["height"]; }; hideSlider: unknown extends Defaults["hideSlider"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["hideSlider"] ? boolean : boolean | Defaults["hideSlider"]; }; sliderColor: unknown extends Defaults["sliderColor"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["sliderColor"] ? string : string | Defaults["sliderColor"]; }; }; export declare const VTabs: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{ symbol: any; grow: boolean; direction: "horizontal" | "vertical"; style: import("vue").StyleValue; mobile: boolean | null; disabled: boolean; multiple: boolean; tag: string | import("../../util/index.js").JSXComponent; mandatory: boolean | "force"; density: import("../../composables/density.js").Density; selectedClass: string; stacked: boolean; centerActive: boolean; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; hideSlider: boolean; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; } & { max?: number | undefined; height?: string | number | undefined; color?: string | undefined; class?: any; mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined; modelValue?: any; bgColor?: string | undefined; contentClass?: any; showArrows?: string | boolean | undefined; sliderColor?: string | undefined; } & { "onUpdate:modelValue"?: ((v: unknown) => any) | undefined; }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<{ 'update:modelValue': (v: unknown) => true; }, "$children" | "v-slots" | "v-slot:default" | "items" | "v-slot:item" | `v-slot:item.${string}` | "v-slot:window" | "v-slot:tab" | `v-slot:tab.${string}`>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, { symbol: any; grow: boolean; height: string | number; direction: "horizontal" | "vertical"; style: import("vue").StyleValue; mobile: boolean | null; disabled: boolean; multiple: boolean; tag: string | import("../../util/index.js").JSXComponent; mandatory: boolean | "force"; modelValue: any; density: import("../../composables/density.js").Density; selectedClass: string; stacked: boolean; centerActive: boolean; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; hideSlider: boolean; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; }, true, {}, import("vue").SlotsType) => import("vue").VNode[]; [x: `item.${string}`]: (arg: VTabsSlot) => import("vue").VNode[]; default: () => import("vue").VNode[]; tab: (arg: VTabsSlot) => import("vue").VNode[]; item: (arg: VTabsSlot) => import("vue").VNode[]; window: () => import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { symbol: any; grow: boolean; direction: "horizontal" | "vertical"; style: import("vue").StyleValue; mobile: boolean | null; disabled: boolean; multiple: boolean; tag: string | import("../../util/index.js").JSXComponent; mandatory: boolean | "force"; density: import("../../composables/density.js").Density; selectedClass: string; stacked: boolean; centerActive: boolean; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; hideSlider: boolean; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; } & { max?: number | undefined; height?: string | number | undefined; color?: string | undefined; class?: any; mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined; modelValue?: any; bgColor?: string | undefined; contentClass?: any; showArrows?: string | boolean | undefined; sliderColor?: string | undefined; } & { "onUpdate:modelValue"?: ((v: unknown) => any) | undefined; }, {}, {}, {}, {}, { symbol: any; grow: boolean; height: string | number; direction: "horizontal" | "vertical"; style: import("vue").StyleValue; mobile: boolean | null; disabled: boolean; multiple: boolean; tag: string | import("../../util/index.js").JSXComponent; mandatory: boolean | "force"; modelValue: any; density: import("../../composables/density.js").Density; selectedClass: string; stacked: boolean; centerActive: boolean; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; hideSlider: boolean; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; }>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase<{ symbol: any; grow: boolean; direction: "horizontal" | "vertical"; style: import("vue").StyleValue; mobile: boolean | null; disabled: boolean; multiple: boolean; tag: string | import("../../util/index.js").JSXComponent; mandatory: boolean | "force"; density: import("../../composables/density.js").Density; selectedClass: string; stacked: boolean; centerActive: boolean; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; hideSlider: boolean; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; } & { max?: number | undefined; height?: string | number | undefined; color?: string | undefined; class?: any; mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined; modelValue?: any; bgColor?: string | undefined; contentClass?: any; showArrows?: string | boolean | undefined; sliderColor?: string | undefined; } & { "onUpdate:modelValue"?: ((v: unknown) => any) | undefined; }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<{ 'update:modelValue': (v: unknown) => true; }, "$children" | "v-slots" | "v-slot:default" | "items" | "v-slot:item" | `v-slot:item.${string}` | "v-slot:window" | "v-slot:tab" | `v-slot:tab.${string}`>, string, { symbol: any; grow: boolean; height: string | number; direction: "horizontal" | "vertical"; style: import("vue").StyleValue; mobile: boolean | null; disabled: boolean; multiple: boolean; tag: string | import("../../util/index.js").JSXComponent; mandatory: boolean | "force"; modelValue: any; density: import("../../composables/density.js").Density; selectedClass: string; stacked: boolean; centerActive: boolean; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; hideSlider: boolean; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; }, {}, string, import("vue").SlotsType) => import("vue").VNode[]; [x: `item.${string}`]: (arg: VTabsSlot) => import("vue").VNode[]; default: () => import("vue").VNode[]; tab: (arg: VTabsSlot) => import("vue").VNode[]; item: (arg: VTabsSlot) => import("vue").VNode[]; window: () => import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new (props: { items?: T[]; }, slots: VTabsSlots) => GenericProps) & import("../../util/index.js").FilterPropsOptions<{ tag: { type: PropType; default: string; }; density: { type: PropType; default: string; validator: (v: any) => boolean; }; modelValue: { type: null; default: undefined; }; multiple: BooleanConstructor; mandatory: { type: PropType; default: NonNullable; }; max: NumberConstructor; selectedClass: Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: string; }; disabled: BooleanConstructor; mobile: Omit<{ type: PropType; default: boolean; }, "type" | "default"> & { type: PropType; default: NonNullable | null; }; mobileBreakpoint: PropType; class: PropType; style: { type: PropType; default: null; }; centerActive: BooleanConstructor; contentClass: null; direction: { type: PropType<"horizontal" | "vertical">; default: string; }; symbol: { type: null; default: import("vue").InjectionKey; }; nextIcon: { type: PropType; default: string; }; prevIcon: { type: PropType; default: string; }; showArrows: { type: (StringConstructor | BooleanConstructor)[]; validator: (v: any) => boolean; }; alignTabs: { type: PropType<"start" | "title" | "center" | "end">; default: string; }; color: StringConstructor; fixedTabs: BooleanConstructor; items: { type: PropType; default: () => never[]; }; stacked: BooleanConstructor; bgColor: StringConstructor; grow: BooleanConstructor; height: { type: (StringConstructor | NumberConstructor)[]; default: undefined; }; hideSlider: BooleanConstructor; sliderColor: StringConstructor; }, import("vue").ExtractPropTypes<{ tag: { type: PropType; default: string; }; density: { type: PropType; default: string; validator: (v: any) => boolean; }; modelValue: { type: null; default: undefined; }; multiple: BooleanConstructor; mandatory: { type: PropType; default: NonNullable; }; max: NumberConstructor; selectedClass: Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: string; }; disabled: BooleanConstructor; mobile: Omit<{ type: PropType; default: boolean; }, "type" | "default"> & { type: PropType; default: NonNullable | null; }; mobileBreakpoint: PropType; class: PropType; style: { type: PropType; default: null; }; centerActive: BooleanConstructor; contentClass: null; direction: { type: PropType<"horizontal" | "vertical">; default: string; }; symbol: { type: null; default: import("vue").InjectionKey; }; nextIcon: { type: PropType; default: string; }; prevIcon: { type: PropType; default: string; }; showArrows: { type: (StringConstructor | BooleanConstructor)[]; validator: (v: any) => boolean; }; alignTabs: { type: PropType<"start" | "title" | "center" | "end">; default: string; }; color: StringConstructor; fixedTabs: BooleanConstructor; items: { type: PropType; default: () => never[]; }; stacked: BooleanConstructor; bgColor: StringConstructor; grow: BooleanConstructor; height: { type: (StringConstructor | NumberConstructor)[]; default: undefined; }; hideSlider: BooleanConstructor; sliderColor: StringConstructor; }>>; export type VTabs = InstanceType;