/// <reference types="lodash" />
import Vue, { VNode } from 'vue';
import TTabPanel from './tab-panel';
import { TdTabsProps } from './type';
interface TabNavVue extends Vue {
    resizeObserver: any;
}
declare const _default: import("vue/types/vue").ExtendedVue<TabNavVue, {
    scrollLeft: number;
    canToLeft: boolean;
    canToRight: boolean;
    navBarStyle: {};
}, {
    caculateCanShowArrow(): void;
    caculateCanToLeft(): void;
    caculateCanToRight(): void;
    caculateNavBarStyle(): void;
    watchDomChange(): void;
    cancelWatchDomChange(): void;
    resetScrollPosition: import("lodash").DebouncedFunc<(this: any) => void>;
    handleScrollToLeft(): void;
    handleScrollToRight(): void;
    shouldMoveToLeftSide(activeTabEl: HTMLElement): boolean;
    shouldMoveToRightSide(activeTabEl: HTMLElement): boolean;
    moveActiveTabIntoView({ needCheckUpdate }?: {
        needCheckUpdate: boolean;
    }): boolean;
    fixIfLastItemNotTouchRightSide(containerWidth: number, wrapWidth: number): boolean;
    fixIfItemTotalWidthIsLessThenContainerWidth(containerWidth: number, wrapWidth: number): boolean;
    fixScrollLeft(): boolean;
    handleAddTab(e: MouseEvent): void;
    tabClick(event: MouseEvent, nav: Partial<InstanceType<typeof TTabPanel>>): false;
    removeBtnClick({ e, value, index }: Parameters<TdTabsProps['onRemove']>[0]): void;
    renderArrows(): JSX.Element[];
    renderNavs(): JSX.Element;
    renderNavBar(): JSX.Element;
}, {
    navs: VNode[];
    wrapTransformStyle: {
        [key: string]: string;
    };
    dataCanUpdateNavBarStyle: any[];
    dataCanUpdateArrow: any[];
    iconBaseClass: {
        [key: string]: boolean;
    };
    leftIconClass: {
        [key: string]: boolean;
    };
    rightIconClass: {
        [key: string]: boolean;
    };
    addIconClass: {
        [key: string]: boolean;
    };
    navContainerClass: {
        [key: string]: boolean;
    };
    navScrollContainerClass: {
        [key: string]: boolean;
    };
    navsWrapClass: (string | {
        [key: string]: boolean;
    })[];
    navBarClass: string[];
    navsContainerStyle: object;
}, {
    theme: "normal" | "card";
    panels: import("vue/types/vue").CombinedVueInstance<{
        active: boolean;
    } & {
        default: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
        destroyOnHide: boolean;
        disabled: boolean;
        label: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
        panel: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
        removable: boolean;
        value: import("./type").TabValue;
        onRemove: (options: {
            value: import("./type").TabValue;
            e: MouseEvent;
        }) => void;
    } & Vue, object, object, object, Record<never, any>>[];
    value: import("./type").TabValue;
    placement: "left" | "top" | "bottom" | "right";
    size: "medium" | "large";
    disabled: boolean;
    addable: boolean;
}>;
export default _default;
