import { InjectionKey, Ref, CSSProperties, VNodeChild, PropType } from 'vue'; import type { ElementClassSet, ElementStyleSet } from '../_utils_'; export declare const tabsInjectionKey: InjectionKey>; export declare const tabPaneIKey: unique symbol; export declare const tabIKey: unique symbol; export declare type TabsType = 'bar' | 'empty' | 'card' | 'segment'; export declare type TabPaneName = string | number; export declare type OnBeforeTabSwitchImpl = (from: TabPaneName, to: TabPaneName) => Promise | boolean | undefined | void; export declare type MaybeTabPaneProps = TabPaneProps & TabProps & Record; export interface TabsExposeInstance { el: HTMLElement; switchTo: (key: string | number) => void; } export interface TabsProps { value?: TabPaneName; defaultTab?: TabPaneName; type?: TabsType; showLine?: boolean; stretch?: boolean; center?: boolean; tabGap?: number; animation?: 'slide' | 'scale' | 'fade'; activeColor?: string; barPosition?: 'bottom' | 'top'; headerStyle?: ElementStyleSet; headerClass?: ElementClassSet; contentStyle?: ElementStyleSet; contentClass?: ElementClassSet; onBeforeTabSwitch?: OnBeforeTabSwitchImpl; } export interface TabPaneProps { name?: TabPaneName; tabLabel?: string | (() => VNodeChild); tabStyle?: string | CSSProperties; tabClass?: string; disabled?: boolean; preload?: boolean; lazy?: boolean; } export interface TabProps { name?: string | number; disabled?: boolean; } export declare const tabsProps: { value: { type: PropType; default: undefined; }; defaultTab: { type: PropType; default: undefined; }; type: { type: PropType; default: string; }; showLine: { type: PropType; default: boolean; }; stretch: { type: PropType; default: boolean; }; center: { type: PropType; default: boolean; }; tabGap: { type: PropType; default: number; }; animation: { type: PropType<"scale" | "slide" | "fade" | undefined>; default: string; }; activeColor: { type: PropType; default: string; }; barPosition: { type: PropType<"bottom" | "top" | undefined>; default: string; }; headerStyle: { type: PropType; default: undefined; }; headerClass: { type: PropType; default: undefined; }; contentStyle: { type: PropType; default: undefined; }; contentClass: { type: PropType; default: undefined; }; onBeforeTabSwitch: { type: PropType; default: undefined; }; }; export declare const tabPaneProps: { name: { type: PropType; default: undefined; }; tabLabel: { type: PropType VNodeChild) | undefined>; default: undefined; }; tabStyle: { type: PropType; default: undefined; }; tabClass: { type: PropType; default: undefined; }; disabled: { type: PropType; default: boolean; }; preload: { type: PropType; default: boolean; }; lazy: { type: PropType; default: boolean; }; }; export declare const tabProps: { name: { type: PropType; default: undefined; }; disabled: { type: PropType; default: boolean; }; };