import React, { MouseEvent, ReactElement, ReactNode, RefCallback, RefObject } from 'react';
import PropTypes from 'prop-types';
import TabsFoundation, { TabsAdapter } from '@douyinfe/semi-foundation/lib/cjs/tabs/foundation';
import BaseComponent from '../_base/baseComponent';
import '@douyinfe/semi-foundation/lib/cjs/tabs/tabs.css';
import TabPane from './TabPane';
import { PlainTab, TabsProps } from './interface';
export * from './interface';
export interface TabsState {
    activeKey: string;
    panes: Array<PlainTab>;
    prevActiveKey: string | null;
    forceDisableMotion: boolean;
}
declare class Tabs extends BaseComponent<TabsProps, TabsState> {
    static TabPane: typeof TabPane;
    static TabItem: React.ForwardRefExoticComponent<import("./TabItem").TabItemProps & React.RefAttributes<HTMLDivElement>>;
    static propTypes: {
        activeKey: PropTypes.Requireable<string>;
        className: PropTypes.Requireable<string>;
        collapsible: PropTypes.Requireable<boolean>;
        contentStyle: PropTypes.Requireable<object>;
        defaultActiveKey: PropTypes.Requireable<string>;
        keepDOM: PropTypes.Requireable<boolean>;
        lazyRender: PropTypes.Requireable<boolean>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        onTabClick: PropTypes.Requireable<(...args: any[]) => any>;
        renderTabBar: PropTypes.Requireable<(...args: any[]) => any>;
        showRestInDropdown: PropTypes.Requireable<boolean>;
        size: PropTypes.Requireable<string>;
        style: PropTypes.Requireable<object>;
        tabBarClassName: PropTypes.Requireable<string>;
        tabBarExtraContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        tabBarStyle: PropTypes.Requireable<object>;
        tabList: PropTypes.Requireable<any[]>;
        tabPaneMotion: PropTypes.Requireable<boolean>;
        tabPosition: PropTypes.Requireable<string>;
        type: PropTypes.Requireable<string>;
        onTabClose: PropTypes.Requireable<(...args: any[]) => any>;
        preventScroll: PropTypes.Requireable<boolean>;
        more: PropTypes.Requireable<NonNullable<number | object>>;
        arrowPosition: PropTypes.Requireable<string>;
        renderArrow: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static __SemiComponentName__: string;
    static defaultProps: TabsProps;
    contentRef: RefObject<HTMLDivElement>;
    contentHeight: string;
    foundation: TabsFoundation;
    constructor(props: TabsProps);
    get adapter(): TabsAdapter<TabsProps, TabsState>;
    static getDerivedStateFromProps(props: TabsProps, state: TabsState): Partial<TabsState>;
    componentDidUpdate(prevProps: TabsProps, prevState: TabsState): void;
    setContentRef: RefCallback<HTMLDivElement>;
    getPanes: () => PlainTab[];
    onTabClick: (activeKey: string, event: MouseEvent<HTMLDivElement>) => void;
    rePosChildren: (children: ReactElement[], activeKey: string) => ReactElement[];
    getActiveItem: () => ReactNode | ReactNode[];
    deleteTabItem: (tabKey: string, event: MouseEvent<HTMLDivElement>) => void;
    render(): ReactNode;
}
export default Tabs;
