import { ExtractPropTypes, PropType, InjectionKey, Ref } from 'vue'; export type TabType = 'card' | 'border-card' | 'line'; export type TabPosition = 'top' | 'right' | 'bottom' | 'left'; export type TabTrigger = 'hover' | 'click'; export interface TabPaneProps { label: string; name: string | number; disabled?: boolean; lazy?: boolean; closable?: boolean; } export interface TabsContext { currentName: Ref; registerPane: (pane: TabPaneProps) => void; unregisterPane: (name: string | number) => void; handleClick: (name: string | number) => void; handleClose: (name: string | number) => void; } export declare const tabsContextKey: InjectionKey; export declare const tabsProps: { readonly modelValue: { readonly type: readonly [StringConstructor, NumberConstructor]; readonly default: ""; }; readonly type: { readonly type: PropType; readonly default: "line"; }; readonly tabPosition: { readonly type: PropType; readonly default: "top"; }; readonly tabWidth: { readonly type: readonly [StringConstructor, NumberConstructor]; readonly default: ""; }; readonly closable: { readonly type: BooleanConstructor; readonly default: false; }; readonly addable: { readonly type: BooleanConstructor; readonly default: false; }; readonly stretch: { readonly type: BooleanConstructor; readonly default: false; }; readonly trigger: { readonly type: PropType; readonly default: "click"; }; readonly animated: { readonly type: BooleanConstructor; readonly default: true; }; readonly lazy: { readonly type: BooleanConstructor; readonly default: false; }; }; export declare const tabsEmits: { 'update:modelValue': (value: string | number) => boolean; 'tab-click': (pane: TabPaneProps) => boolean; 'tab-change': (name: string | number) => boolean; 'tab-remove': (name: string | number) => boolean; 'tab-add': () => boolean; }; export type TabsProps = ExtractPropTypes; export type TabsEmits = typeof tabsEmits;