import { CSSProperties, FunctionComponent, JSXElementConstructor, Key, MouseEvent, ReactNode } from 'react';
import { TabsPosition, TabsType } from './enum';
import TabPane, { TabPaneProps } from './TabPane';
import TabGroup, { TabGroupProps } from './TabGroup';
import { Size } from '../_util/enum';
export declare type Animated = {
    inkBar: boolean;
    tabPane: boolean;
};
export interface TabsCustomized {
    defaultActiveKey?: string;
    panes: {
        [key: string]: TabPaneProps;
    };
}
export interface TabsProps {
    activeKey?: string;
    defaultActiveKey?: string;
    hideAdd?: boolean;
    hideOnlyGroup?: boolean;
    showMore?: boolean;
    onChange?: (activeKey: string) => void;
    onTabClick?: (key: string) => void;
    tabBarExtraContent?: ReactNode | null;
    tabBarStyle?: CSSProperties;
    inkBarStyle?: CSSProperties;
    tabBarGutter?: number;
    type?: TabsType;
    tabPosition?: TabsPosition;
    onEdit?: (targetKey: Key | MouseEvent<HTMLElement>, action: 'add' | 'remove') => void;
    size?: Size;
    style?: CSSProperties;
    prefixCls?: string;
    className?: string;
    animated?: boolean | Animated;
    closeShortcut?: boolean;
    keyboard?: boolean;
    destroyInactiveTabPane?: boolean;
    children?: ReactNode;
    customizable?: boolean;
    customizedCode?: string;
    tabDraggable?: boolean;
    tabTitleEditable?: boolean;
    tabCountHideable?: boolean;
    defaultChangeable?: boolean;
    rippleDisabled?: boolean;
    flex?: boolean;
    restoreDefault?: boolean;
}
export declare type GroupPanelMap = {
    group: TabGroupProps;
    panelsMap: Map<string, TabPaneProps & {
        type: string | JSXElementConstructor<any>;
    }>;
    lastActiveKey?: string;
};
declare const Tabs: FunctionComponent<TabsProps>;
export declare type ForwardTabsType = typeof Tabs & {
    TabPane: typeof TabPane;
    TabGroup: typeof TabGroup;
};
declare const _default: ForwardTabsType;
export default _default;
