import { Component } from 'react';
import { IInnerTab, ITabsNavProps } from '../../types';
interface ITabsItem {
    id: string | number;
    width: number;
    accumWidth: number;
}
interface ITabsInfo {
    list: ITabsItem[];
    tabsTotalWidth: number;
}
interface IOperationTabsProps<Id> extends Pick<ITabsNavProps<Id>, 'tabDataList' | 'onChange' | 'overflowMode' | 'onAdd' | 'activeId'> {
    tabs: React.ReactNode[];
}
declare abstract class OperationTabs<Id extends string | number> extends Component<IOperationTabsProps<Id>> {
    tabsWrapperRef: import("react").RefObject<HTMLDivElement>;
    tabsMainRef: import("react").RefObject<HTMLDivElement>;
    static defaultProps: {
        overflowMode: string;
    };
    state: {
        startIndex: number;
        endIndex: number;
        translateX: number;
    };
    get tabsWrapperWidth(): number;
    get isControlled(): boolean;
    getTabsInfo(): ITabsInfo;
    getTargetIndex: (translateX: number, tabsInfo: ITabsInfo, isEnd?: boolean) => number;
    getHiddenTabs: (tabDataList: Array<IInnerTab<Id>>, startIndex: number, endIndex: number) => any[];
    onStartChange: (startIndex: number, tabsInfo: ITabsInfo) => void;
    onEndChange: (endIndex: number, tabsInfo: ITabsInfo) => void;
    handlePageScroll: (tab: IInnerTab<Id>) => void;
    onAnchorPageChange: (tab: IInnerTab<Id>) => void;
    onSlidePageChange: (isPrev: boolean, disabled?: boolean) => void;
    renderSlideOperations(): JSX.Element;
    renderAnchorOperations(tabs: Array<IInnerTab<Id>>): JSX.Element;
    componentDidMount(): void;
    onResize: (() => void) & import("../../../utils/types").ICancelable;
    componentDidUpdate: (prevProps: any) => void;
    handleAddClick: () => void;
    render(): JSX.Element;
}
export default OperationTabs;
