import type { TabPaneProps } from './tab-pane'; import type { ComputedRef, ExtractPropTypes, InjectionKey, Ref, Slots, UnwrapRef } from 'vue'; import type { Awaitable } from '@element-plus-next/utils'; export declare type TabPanelName = string | number; export declare const tabsProps: { readonly type: import("@element-plus-next/vue-utils").EpPropFinalized; readonly activeName: { readonly type: import("@vue/runtime-core").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly closable: BooleanConstructor; readonly addable: BooleanConstructor; readonly modelValue: { readonly type: import("@vue/runtime-core").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly editable: BooleanConstructor; readonly tabPosition: import("@element-plus-next/vue-utils").EpPropFinalized; readonly beforeLeave: import("@element-plus-next/vue-utils").EpPropFinalized<(new (...args: any[]) => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | (() => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | { (): (newName: TabPanelName, oldName: TabPanelName) => Awaitable; new (): any; readonly prototype: any; } | ((new (...args: any[]) => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | (() => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | { (): (newName: TabPanelName, oldName: TabPanelName) => Awaitable; new (): any; readonly prototype: any; })[], unknown, unknown, () => true, boolean>; readonly stretch: BooleanConstructor; }; export declare type TabsProps = ExtractPropTypes; export declare const tabsEmits: { "update:modelValue": (name: TabPanelName) => boolean; 'tab-click': (pane: TabsPaneContext, ev: Event) => boolean; 'tab-change': (name: TabPanelName) => boolean; edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') => boolean; 'tab-remove': (name: TabPanelName) => boolean; 'tab-add': () => boolean; }; export declare type TabsEmits = typeof tabsEmits; export declare type TabsPaneContext = UnwrapRef<{ uid: number; slots: Slots; props: TabPaneProps; paneName: ComputedRef; active: ComputedRef; index: Ref; isClosable: ComputedRef; }>; export interface TabsRootContext { props: TabsProps; currentName: Ref; registerPane: (pane: TabsPaneContext) => void; unregisterPane: (uid: number) => void; } export declare const tabsRootContextKey: InjectionKey; declare const _default: import("@vue/runtime-core").DefineComponent<{ readonly type: import("@element-plus-next/vue-utils").EpPropFinalized; readonly activeName: { readonly type: import("@vue/runtime-core").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly closable: BooleanConstructor; readonly addable: BooleanConstructor; readonly modelValue: { readonly type: import("@vue/runtime-core").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly editable: BooleanConstructor; readonly tabPosition: import("@element-plus-next/vue-utils").EpPropFinalized; readonly beforeLeave: import("@element-plus-next/vue-utils").EpPropFinalized<(new (...args: any[]) => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | (() => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | { (): (newName: TabPanelName, oldName: TabPanelName) => Awaitable; new (): any; readonly prototype: any; } | ((new (...args: any[]) => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | (() => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | { (): (newName: TabPanelName, oldName: TabPanelName) => Awaitable; new (): any; readonly prototype: any; })[], unknown, unknown, () => true, boolean>; readonly stretch: BooleanConstructor; }, () => JSX.Element, unknown, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, { "update:modelValue": (name: TabPanelName) => boolean; 'tab-click': (pane: { uid: number; slots: Readonly<{ [name: string]: import("@vue/runtime-core").Slot | undefined; }>; props: { readonly label: string; readonly closable: boolean; readonly disabled: boolean; readonly lazy: boolean; readonly name?: import("@element-plus-next/vue-utils").EpPropMergeType | undefined; }; paneName: string | number | undefined; active: boolean; index: string | undefined; isClosable: boolean; }, ev: Event) => boolean; 'tab-change': (name: TabPanelName) => boolean; edit: (paneName: TabPanelName | undefined, action: "remove" | "add") => boolean; 'tab-remove': (name: TabPanelName) => boolean; 'tab-add': () => boolean; }, string, import("@vue/runtime-core").VNodeProps & import("@vue/runtime-core").AllowedComponentProps & import("@vue/runtime-core").ComponentCustomProps, Readonly; readonly activeName: { readonly type: import("@vue/runtime-core").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly closable: BooleanConstructor; readonly addable: BooleanConstructor; readonly modelValue: { readonly type: import("@vue/runtime-core").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly editable: BooleanConstructor; readonly tabPosition: import("@element-plus-next/vue-utils").EpPropFinalized; readonly beforeLeave: import("@element-plus-next/vue-utils").EpPropFinalized<(new (...args: any[]) => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | (() => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | { (): (newName: TabPanelName, oldName: TabPanelName) => Awaitable; new (): any; readonly prototype: any; } | ((new (...args: any[]) => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | (() => (newName: TabPanelName, oldName: TabPanelName) => Awaitable) | { (): (newName: TabPanelName, oldName: TabPanelName) => Awaitable; new (): any; readonly prototype: any; })[], unknown, unknown, () => true, boolean>; readonly stretch: BooleanConstructor; }>> & { "onUpdate:modelValue"?: ((name: TabPanelName) => any) | undefined; "onTab-click"?: ((pane: { uid: number; slots: Readonly<{ [name: string]: import("@vue/runtime-core").Slot | undefined; }>; props: { readonly label: string; readonly closable: boolean; readonly disabled: boolean; readonly lazy: boolean; readonly name?: import("@element-plus-next/vue-utils").EpPropMergeType | undefined; }; paneName: string | number | undefined; active: boolean; index: string | undefined; isClosable: boolean; }, ev: Event) => any) | undefined; "onTab-change"?: ((name: TabPanelName) => any) | undefined; onEdit?: ((paneName: TabPanelName | undefined, action: "remove" | "add") => any) | undefined; "onTab-remove"?: ((name: TabPanelName) => any) | undefined; "onTab-add"?: (() => any) | undefined; }, { readonly type: import("@element-plus-next/vue-utils").EpPropMergeType; readonly closable: boolean; readonly stretch: boolean; readonly editable: boolean; readonly beforeLeave: (newName: TabPanelName, oldName: TabPanelName) => Awaitable; readonly tabPosition: import("@element-plus-next/vue-utils").EpPropMergeType; readonly addable: boolean; }>; export default _default;