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; prev: never; next: never; } & { [key: `tab.${string}`]: VTabsSlot; [key: `item.${string}`]: VTabsSlot; }; export declare const makeVTabsProps: (defaults?: Defaults | undefined) => { 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; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable; }; mobile: unknown extends Defaults["mobile"] ? Omit<{ type: PropType; default: boolean; }, "default" | "type"> & { type: PropType; default: NonNullable | null; } : Omit; default: boolean; }, "default" | "type"> & { type: PropType; default: NonNullable | null; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["mobile"] ? boolean | null : Defaults["mobile"] | NonNullable; }; mobileBreakpoint: unknown extends Defaults["mobileBreakpoint"] ? PropType : { type: PropType; default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : Defaults["mobileBreakpoint"] | NonNullable; }; density: unknown extends Defaults["density"] ? { type: PropType; default: string; validator: (v: any) => boolean; } : Omit<{ type: PropType; default: string; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable; }; tag: unknown extends Defaults["tag"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable; }; modelValue: unknown extends Defaults["modelValue"] ? { type: null; default: undefined; } : Omit<{ type: null; default: undefined; }, "default" | "type"> & { 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<"force" | boolean>; default: NonNullable<"force" | boolean>; } : Omit<{ type: PropType<"force" | boolean>; default: NonNullable<"force" | boolean>; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["mandatory"] ? "force" | boolean : Defaults["mandatory"] | NonNullable<"force" | boolean>; }; 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; }, "default" | "type"> & { type: PropType; default: string; } : Omit; default: string; }, "default" | "type"> & { type: PropType; default: string; }, "default" | "type"> & { 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"]; }; spaced: unknown extends Defaults["spaced"] ? PropType<"both" | "end" | "start"> : { type: PropType; default: unknown extends Defaults["spaced"] ? "both" | "end" | "start" : Defaults["spaced"] | NonNullable<"both" | "end" | "start">; }; centerActive: unknown extends Defaults["centerActive"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["centerActive"] ? boolean : boolean | Defaults["centerActive"]; }; scrollToActive: unknown extends Defaults["scrollToActive"] ? { type: BooleanConstructor; default: boolean; } : Omit<{ type: BooleanConstructor; default: boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["scrollToActive"] ? boolean : boolean | Defaults["scrollToActive"]; }; 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; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["direction"] ? "horizontal" | "vertical" : Defaults["direction"] | NonNullable<"horizontal" | "vertical">; }; symbol: unknown extends Defaults["symbol"] ? { type: null; default: import("vue").InjectionKey; } : Omit<{ type: null; default: import("vue").InjectionKey; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["symbol"] ? any : any; }; nextIcon: unknown extends Defaults["nextIcon"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["nextIcon"] ? import("../../composables/icons.js").IconValue : Defaults["nextIcon"] | NonNullable; }; prevIcon: unknown extends Defaults["prevIcon"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["prevIcon"] ? import("../../composables/icons.js").IconValue : Defaults["prevIcon"] | NonNullable; }; showArrows: unknown extends Defaults["showArrows"] ? { type: (BooleanConstructor | StringConstructor)[]; validator: (v: any) => boolean; } : Omit<{ type: (BooleanConstructor | StringConstructor)[]; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["showArrows"] ? string | boolean : Defaults["showArrows"] | NonNullable; }; sliderTransition: unknown extends Defaults["sliderTransition"] ? PropType<"fade" | "grow" | "shift"> : { type: PropType; default: unknown extends Defaults["sliderTransition"] ? "fade" | "grow" | "shift" : Defaults["sliderTransition"] | NonNullable<"fade" | "grow" | "shift">; }; sliderTransitionDuration: unknown extends Defaults["sliderTransitionDuration"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["sliderTransitionDuration"] ? string | number : Defaults["sliderTransitionDuration"] | NonNullable; }; alignTabs: unknown extends Defaults["alignTabs"] ? { type: PropType<'start' | 'title' | 'center' | 'end'>; default: string; } : Omit<{ type: PropType<'start' | 'title' | 'center' | 'end'>; default: string; }, "default" | "type"> & { 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[]; }, "default" | "type"> & { 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: (NumberConstructor | StringConstructor)[]; default: undefined; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: undefined; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable; }; hideSlider: unknown extends Defaults["hideSlider"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["hideSlider"] ? boolean : boolean | Defaults["hideSlider"]; }; inset: unknown extends Defaults["inset"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["inset"] ? boolean : boolean | Defaults["inset"]; }; insetPadding: unknown extends Defaults["insetPadding"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["insetPadding"] ? string | number : Defaults["insetPadding"] | NonNullable; }; insetRadius: unknown extends Defaults["insetRadius"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["insetRadius"] ? string | number : Defaults["insetRadius"] | NonNullable; }; 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<{ style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null; mobile: boolean | null; density: import("../../composables/density.js").Density; tag: string | import("../../util/index.js").JSXComponent; multiple: boolean; mandatory: "force" | boolean; selectedClass: string; disabled: boolean; centerActive: boolean; scrollToActive: boolean; direction: "horizontal" | "vertical"; symbol: any; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; stacked: boolean; grow: boolean; hideSlider: boolean; inset: boolean; } & { class?: any; mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined; max?: number | undefined; spaced?: "both" | "end" | "start" | undefined; contentClass?: any; showArrows?: string | boolean | undefined; sliderTransition?: "fade" | "grow" | "shift" | undefined; sliderTransitionDuration?: string | number | undefined; color?: string | undefined; bgColor?: string | undefined; height?: string | number | undefined; insetPadding?: string | number | undefined; insetRadius?: string | number | undefined; sliderColor?: string | undefined; } & {}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<{ 'update:modelValue': (v: unknown) => true; }, "$children" | "items" | "modelValue" | "update:modelValue" | "v-slot:default" | "v-slot:item" | "v-slot:next" | "v-slot:prev" | "v-slot:tab" | "v-slot:window" | "v-slots" | `v-slot:item.${string}` | `v-slot:tab.${string}`>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, { style: import("vue").StyleValue; mobile: boolean | null; density: import("../../composables/density.js").Density; tag: string | import("../../util/index.js").JSXComponent; multiple: boolean; mandatory: "force" | boolean; selectedClass: string; disabled: boolean; centerActive: boolean; scrollToActive: boolean; direction: "horizontal" | "vertical"; symbol: any; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; stacked: boolean; grow: boolean; height: string | number; hideSlider: boolean; inset: 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[]; prev: () => import("vue").VNode[]; next: () => import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null; mobile: boolean | null; density: import("../../composables/density.js").Density; tag: string | import("../../util/index.js").JSXComponent; multiple: boolean; mandatory: "force" | boolean; selectedClass: string; disabled: boolean; centerActive: boolean; scrollToActive: boolean; direction: "horizontal" | "vertical"; symbol: any; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; stacked: boolean; grow: boolean; hideSlider: boolean; inset: boolean; } & { class?: any; mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined; max?: number | undefined; spaced?: "both" | "end" | "start" | undefined; contentClass?: any; showArrows?: string | boolean | undefined; sliderTransition?: "fade" | "grow" | "shift" | undefined; sliderTransitionDuration?: string | number | undefined; color?: string | undefined; bgColor?: string | undefined; height?: string | number | undefined; insetPadding?: string | number | undefined; insetRadius?: string | number | undefined; sliderColor?: string | undefined; } & {}, {}, {}, {}, {}, { style: import("vue").StyleValue; mobile: boolean | null; density: import("../../composables/density.js").Density; tag: string | import("../../util/index.js").JSXComponent; multiple: boolean; mandatory: "force" | boolean; selectedClass: string; disabled: boolean; centerActive: boolean; scrollToActive: boolean; direction: "horizontal" | "vertical"; symbol: any; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; stacked: boolean; grow: boolean; height: string | number; hideSlider: boolean; inset: boolean; }>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase<{ style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null; mobile: boolean | null; density: import("../../composables/density.js").Density; tag: string | import("../../util/index.js").JSXComponent; multiple: boolean; mandatory: "force" | boolean; selectedClass: string; disabled: boolean; centerActive: boolean; scrollToActive: boolean; direction: "horizontal" | "vertical"; symbol: any; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; stacked: boolean; grow: boolean; hideSlider: boolean; inset: boolean; } & { class?: any; mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined; max?: number | undefined; spaced?: "both" | "end" | "start" | undefined; contentClass?: any; showArrows?: string | boolean | undefined; sliderTransition?: "fade" | "grow" | "shift" | undefined; sliderTransitionDuration?: string | number | undefined; color?: string | undefined; bgColor?: string | undefined; height?: string | number | undefined; insetPadding?: string | number | undefined; insetRadius?: string | number | undefined; sliderColor?: string | undefined; } & {}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<{ 'update:modelValue': (v: unknown) => true; }, "$children" | "items" | "modelValue" | "update:modelValue" | "v-slot:default" | "v-slot:item" | "v-slot:next" | "v-slot:prev" | "v-slot:tab" | "v-slot:window" | "v-slots" | `v-slot:item.${string}` | `v-slot:tab.${string}`>, string, { style: import("vue").StyleValue; mobile: boolean | null; density: import("../../composables/density.js").Density; tag: string | import("../../util/index.js").JSXComponent; multiple: boolean; mandatory: "force" | boolean; selectedClass: string; disabled: boolean; centerActive: boolean; scrollToActive: boolean; direction: "horizontal" | "vertical"; symbol: any; nextIcon: import("../../composables/icons.js").IconValue; prevIcon: import("../../composables/icons.js").IconValue; alignTabs: "center" | "end" | "start" | "title"; fixedTabs: boolean; stacked: boolean; grow: boolean; height: string | number; hideSlider: boolean; inset: 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[]; prev: () => import("vue").VNode[]; next: () => 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[]; modelValue?: TModel; 'onUpdate:modelValue'?: (value: TModel) => void; }, slots: VTabsSlots) => GenericProps) & import("../../util/index.js").FilterPropsOptions<{ class: PropType; style: { type: PropType; default: null; }; mobile: Omit<{ type: PropType; default: boolean; }, "default" | "type"> & { type: PropType; default: NonNullable | null; }; mobileBreakpoint: PropType; density: { type: PropType; default: string; validator: (v: any) => boolean; }; tag: { type: PropType; default: string; }; modelValue: { type: null; default: undefined; }; multiple: BooleanConstructor; mandatory: { type: PropType<"force" | boolean>; default: NonNullable<"force" | boolean>; }; max: NumberConstructor; selectedClass: Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: string; }; disabled: BooleanConstructor; spaced: PropType<'start' | 'end' | 'both'>; centerActive: BooleanConstructor; scrollToActive: { type: BooleanConstructor; default: boolean; }; 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: (BooleanConstructor | StringConstructor)[]; validator: (v: any) => boolean; }; sliderTransition: PropType<'shift' | 'grow' | 'fade'>; sliderTransitionDuration: (NumberConstructor | StringConstructor)[]; 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: (NumberConstructor | StringConstructor)[]; default: undefined; }; hideSlider: BooleanConstructor; inset: BooleanConstructor; insetPadding: (NumberConstructor | StringConstructor)[]; insetRadius: (NumberConstructor | StringConstructor)[]; sliderColor: StringConstructor; }, import("vue").ExtractPropTypes<{ class: PropType; style: { type: PropType; default: null; }; mobile: Omit<{ type: PropType; default: boolean; }, "default" | "type"> & { type: PropType; default: NonNullable | null; }; mobileBreakpoint: PropType; density: { type: PropType; default: string; validator: (v: any) => boolean; }; tag: { type: PropType; default: string; }; modelValue: { type: null; default: undefined; }; multiple: BooleanConstructor; mandatory: { type: PropType<"force" | boolean>; default: NonNullable<"force" | boolean>; }; max: NumberConstructor; selectedClass: Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: string; }; disabled: BooleanConstructor; spaced: PropType<'start' | 'end' | 'both'>; centerActive: BooleanConstructor; scrollToActive: { type: BooleanConstructor; default: boolean; }; 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: (BooleanConstructor | StringConstructor)[]; validator: (v: any) => boolean; }; sliderTransition: PropType<'shift' | 'grow' | 'fade'>; sliderTransitionDuration: (NumberConstructor | StringConstructor)[]; 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: (NumberConstructor | StringConstructor)[]; default: undefined; }; hideSlider: BooleanConstructor; inset: BooleanConstructor; insetPadding: (NumberConstructor | StringConstructor)[]; insetRadius: (NumberConstructor | StringConstructor)[]; sliderColor: StringConstructor; }>>; export type VTabs = InstanceType;