import { CSSProperties, VNode } from 'vue'; import { TabsPane } from './slotItems'; export type TabsJustifyContent = 'space-between' | 'space-around' | 'space-evenly' | 'center' | 'start' | 'end'; export interface TabsAddable { disabled?: boolean; } export type TabsBeforeLeave = (key: string | number, oldKey?: string | number) => boolean | void | Promise; export interface Props { activeKey?: string | number; defaultActiveKey?: string | number; prefix?: string; suffix?: string; size?: 'small' | 'middle' | 'large'; type?: 'line' | 'card'; tabPosition?: 'top' | 'right' | 'bottom' | 'left'; justifyContent?: TabsJustifyContent; tabGutter?: number; tabStyle?: CSSProperties; tabClass?: string; contentStyle?: CSSProperties; contentClass?: string; animated?: boolean; centerActiveTab?: boolean; addable?: boolean | TabsAddable; destroyInactiveTabPane?: boolean; beforeLeave?: TabsBeforeLeave; } export interface TabsTabBarSlotProps { tabs: TabsPane[]; activeKey?: string | number; change: (key: string | number) => void; } export interface TabsSlots { default?: () => VNode[]; prefix?: () => VNode[]; suffix?: () => VNode[]; addIcon?: () => VNode[]; tabBar?: (props: TabsTabBarSlotProps) => VNode[]; } declare function __VLS_template(): { attrs: Partial<{}>; slots: Readonly & TabsSlots; refs: { wrapRef: HTMLDivElement; navRef: HTMLDivElement; tabsRef: HTMLDivElement[]; }; rootEl: HTMLDivElement; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent any; close: (key: string | number) => any; add: () => any; "update:activeKey": (key: string | number) => any; tabClick: (key: string | number, event: KeyboardEvent | MouseEvent) => any; tabScroll: (info: { direction: "left" | "right" | "top" | "bottom"; }) => any; }, string, import('vue').PublicProps, Readonly & Readonly<{ onChange?: ((key: string | number) => any) | undefined; onClose?: ((key: string | number) => any) | undefined; onAdd?: (() => any) | undefined; "onUpdate:activeKey"?: ((key: string | number) => any) | undefined; onTabClick?: ((key: string | number, event: KeyboardEvent | MouseEvent) => any) | undefined; onTabScroll?: ((info: { direction: "left" | "right" | "top" | "bottom"; }) => any) | undefined; }>, { size: "small" | "middle" | "large"; type: "line" | "card"; beforeLeave: TabsBeforeLeave; justifyContent: TabsJustifyContent; contentClass: string; contentStyle: CSSProperties; animated: boolean; activeKey: string | number; defaultActiveKey: string | number; prefix: string; suffix: string; tabPosition: "top" | "right" | "bottom" | "left"; tabGutter: number; tabStyle: CSSProperties; tabClass: string; centerActiveTab: boolean; addable: boolean | TabsAddable; destroyInactiveTabPane: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, { wrapRef: HTMLDivElement; navRef: HTMLDivElement; tabsRef: HTMLDivElement[]; }, HTMLDivElement>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };