import { Component } from 'react';
import { Width } from '../common';
import { Swipe } from './utils';
export interface TabItem {
    title: string;
    content: React.ReactNode;
    disabled: boolean;
}
export interface TabsProps {
    tabs: TabItem[];
    selected: number;
    name: string;
    changeTabOnSwipe?: boolean;
    className?: string;
    headerWidth?: `${Width}`;
    onTabSelect: (index: number) => void;
}
interface TabsState {
    start: Swipe | null;
    translateLineX: string | null;
    isSwiping: boolean;
    isScrolling: boolean;
    fullWidthTabs: boolean;
}
export default class Tabs extends Component<TabsProps, TabsState> {
    props: TabsProps & Required<Pick<TabsProps, keyof typeof Tabs.defaultProps>>;
    static defaultProps: {
        changeTabOnSwipe: true;
        headerWidth: Width.BLOCK;
    };
    containerReference: import("react").RefObject<HTMLDivElement>;
    constructor(props: Tabs['props']);
    container: HTMLDivElement | null;
    containerWidth: number;
    tabRefs: (HTMLLIElement | null)[];
    get MAX_INDEX(): number;
    componentDidMount(): void;
    componentDidUpdate(previousProps: TabsProps): void;
    componentWillUnmount(): void;
    handleResize: () => void;
    setContainerRefAndWidth: (node: HTMLDivElement | null) => void;
    setContainerWidth: (node: HTMLDivElement | null) => void;
    isTabDisabled: (index: number) => boolean;
    getAllTabsWidth: () => number;
    getDistanceToSelectedTab: (selectedTabIndex: number) => number;
    setTabWidth: () => void;
    getTabLineWidth: () => string;
    getTabToSelect: (selected: number, start: Swipe, end: Swipe) => number;
    swipedOverHalfOfContainer: (difference: number) => boolean;
    switchTab: (index: number) => void;
    animateLine: (index: number) => void;
    disableScroll: (event: Event) => void;
    handleTabClick: (index: number) => () => void;
    onKeyDown: (index: number) => (event: React.KeyboardEvent<HTMLLIElement>) => void;
    handleTouchStart: React.TouchEventHandler<HTMLDivElement>;
    handleTouchMove: React.TouchEventHandler<HTMLDivElement>;
    handleTouchEnd: React.TouchEventHandler<HTMLDivElement>;
    render(): import("react").JSX.Element;
}
export {};
//# sourceMappingURL=Tabs.d.ts.map