/**
 * @license chowa v1.1.3
 *
 * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from 'react';
import * as PropTypes from 'prop-types';
export interface TabsProps {
    className?: string;
    style?: React.CSSProperties;
    tabPosition?: 'top' | 'left' | 'right' | 'bottom';
    tabJustified?: boolean;
    defaultActiveIndex?: React.ReactText;
    activeIndex?: React.ReactText;
    mode?: 'line' | 'card';
    closable?: boolean;
    appendable?: boolean;
    onChange?: (index: React.ReactText) => void;
    onBeforeClose?: (index: React.ReactText) => boolean;
    onClose?: (index: React.ReactText) => void;
    onAppend?: () => void;
}
export interface TabsState {
    selfActiveIndex: React.ReactText;
    showNavScrollBtn: boolean;
    navPageCount: number;
    navPageNumber: number;
    navWrapperStyle: React.CSSProperties;
    activeLineStyle: React.CSSProperties;
    panelWrapperStyle: React.CSSProperties;
}
declare class Tabs extends React.PureComponent<TabsProps, TabsState> {
    static propTypes: {
        className: PropTypes.Requireable<string>;
        style: PropTypes.Requireable<object>;
        tabPosition: PropTypes.Requireable<string>;
        tabJustified: PropTypes.Requireable<boolean>;
        defaultActiveIndex: PropTypes.Requireable<string | number>;
        mode: PropTypes.Requireable<string>;
        closable: PropTypes.Requireable<boolean>;
        appendable: PropTypes.Requireable<boolean>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        onBeforeClose: PropTypes.Requireable<(...args: any[]) => any>;
        onClose: PropTypes.Requireable<(...args: any[]) => any>;
        onAppend: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        closable: boolean;
        tabJustified: boolean;
        appendable: boolean;
        tabPosition: string;
        mode: string;
    };
    static Panel: React.SFC<import("./tabs-panel").TabsPanelProps>;
    private containerEle;
    private panelWrapperEle;
    private navScrollEle;
    private navWrapperEle;
    private resizeObserver;
    private tabIndexs;
    constructor(props: TabsProps);
    private preTabPage;
    private nextTabPage;
    private updateNavPagination;
    componentDidUpdate(preProps: TabsProps & {
        children: React.ReactNode;
    }): void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    private updateNavScrollParams;
    private onTabClickHandler;
    private onCloseHandler;
    private onTabAppendHandler;
    private updateActiveTabs;
    private compileTabs;
    render(): JSX.Element;
}
export default Tabs;
