import type { ComponentInternalInstance, ComputedRef, Ref } from 'vue';
export declare type BeforeLeave = (newTabName: string, oldTabName: string) => void | Promise<void> | boolean;
export declare type ITabType = 'card' | 'border-card' | '';
export declare type ITabPosition = 'top' | 'right' | 'bottom' | 'left';
export declare type UpdatePaneStateCallback = (pane: Pane) => void;
export interface IElTabsProps {
    type: ITabType;
    activeName: string;
    closable: boolean;
    addable: boolean;
    modelValue: string;
    editable: boolean;
    tabPosition: ITabPosition;
    beforeLeave: BeforeLeave;
    stretch: boolean;
}
export interface RootTabs {
    props: IElTabsProps;
    currentName: Ref<string>;
}
export interface IElPaneProps {
    label: string;
    name: string;
    closable: boolean;
    disabled: boolean;
    lazy: boolean;
}
export interface Pane {
    uid: number;
    instance: ComponentInternalInstance;
    props: IElPaneProps;
    paneName: ComputedRef<string>;
    active: ComputedRef<boolean>;
    index: Ref<string>;
    isClosable: ComputedRef<boolean>;
}
