import type { PropType, ExtractPropTypes } from 'vue';
import type { Arrayable, ComponentSize, IAuth, JSXElement } from '../../_utils/types';
export declare const _props: {
    modelValue: {
        type: PropType<string | number>;
    };
    size: {
        type: PropType<ComponentSize>;
        validator: (val: string) => boolean;
    };
    class: {
        type: PropType<string | Arrayable<Record<string, boolean>>>;
    };
    authConfig: {
        type: PropType<{
            fieldList?: IAuth[] | undefined;
        }>;
    };
    lazyLoad: {
        type: BooleanConstructor;
        default: boolean;
    };
    tabBarExtraContent: {
        type: PropType<string | JSXElement>;
        validator: (val: any) => boolean;
    };
    type: import("element-plus/es/utils/vue/props/types").EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
    closable: BooleanConstructor;
    addable: BooleanConstructor;
    defaultValue: {
        readonly type: PropType<import("element-plus/es/utils/vue/props/types").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    editable: BooleanConstructor;
    tabPosition: import("element-plus/es/utils/vue/props/types").EpPropFinalized<StringConstructor, "top" | "bottom" | "left" | "right", unknown, "top", boolean>;
    beforeLeave: import("element-plus/es/utils/vue/props/types").EpPropFinalized<(new (...args: any[]) => (newName: import("element-plus/es/components/tabs/src/constants").TabPaneName, oldName: import("element-plus/es/components/tabs/src/constants").TabPaneName) => import("element-plus/es/utils/typescript").Awaitable<boolean | void>) | (() => (newName: import("element-plus/es/components/tabs/src/constants").TabPaneName, oldName: import("element-plus/es/components/tabs/src/constants").TabPaneName) => import("element-plus/es/utils/typescript").Awaitable<boolean | void>) | {
        (): (newName: import("element-plus/es/components/tabs/src/constants").TabPaneName, oldName: import("element-plus/es/components/tabs/src/constants").TabPaneName) => import("element-plus/es/utils/typescript").Awaitable<boolean | void>;
        new (): any;
        readonly prototype: any;
    } | ((new (...args: any[]) => (newName: import("element-plus/es/components/tabs/src/constants").TabPaneName, oldName: import("element-plus/es/components/tabs/src/constants").TabPaneName) => import("element-plus/es/utils/typescript").Awaitable<boolean | void>) | (() => (newName: import("element-plus/es/components/tabs/src/constants").TabPaneName, oldName: import("element-plus/es/components/tabs/src/constants").TabPaneName) => import("element-plus/es/utils/typescript").Awaitable<boolean | void>) | {
        (): (newName: import("element-plus/es/components/tabs/src/constants").TabPaneName, oldName: import("element-plus/es/components/tabs/src/constants").TabPaneName) => import("element-plus/es/utils/typescript").Awaitable<boolean | void>;
        new (): any;
        readonly prototype: any;
    } | null)[], unknown, unknown, () => true, boolean>;
    stretch: BooleanConstructor;
    tabindex: import("element-plus/es/utils/vue/props/types").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 0, boolean>;
};
export declare const _paneProps: {
    label: import("element-plus/es/utils/vue/props/types").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
    name: {
        readonly type: PropType<import("element-plus/es/utils/vue/props/types").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    closable: import("element-plus/es/utils/vue/props/types").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
    disabled: BooleanConstructor;
    lazy: BooleanConstructor;
};
export declare const _emits: {
    "update:modelValue": (value: string | number) => boolean;
    tabClick: (ctx: any, ev: MouseEvent) => boolean;
    tabChange: (name: string) => boolean;
    edit: (name: string, action: 'remove' | 'add') => boolean;
};
export type TabsProps = ExtractPropTypes<typeof _props>;
export type TabPaneProps = ExtractPropTypes<typeof _paneProps>;
export type TabsEmits = typeof _emits;
