import React from 'react';
import PropTypes from 'prop-types';
declare type TabPanelStyle = {
    TABS: 'tabs';
    PILLS: 'pills';
    MENU: 'menu';
};
declare type BSStyle = TabPanelStyle['TABS'] | TabPanelStyle['PILLS'] | TabPanelStyle['MENU'];
declare type TabPanelProps = {
    testAutomationId?: string;
    children: React.ReactNode;
    centered?: boolean;
    noBorder?: boolean;
    topMenu?: boolean;
    clearRightPadding?: boolean;
    clearLeftPadding?: boolean;
    clearLeftWrapperPadding?: boolean;
    clearRightWrapperPadding?: boolean;
    fullWidthBorder?: boolean;
    noPadding?: boolean;
    preserveBottomBorder?: boolean;
    className?: string;
    activeKey?: string | number;
    bsStyle?: BSStyle;
} & Partial<TabPanelDefaultProps> & React.HTMLProps<TabPanel>;
declare type TabPanelDefaultProps = {
    testAutomationId: string;
    centered: boolean;
    noBorder: boolean;
    topMenu: boolean;
    clearRightPadding: boolean;
    clearLeftPadding: boolean;
    clearLeftWrapperPadding: boolean;
    clearRightWrapperPadding: boolean;
    fullWidthBorder: boolean;
    preserveBottomBorder: boolean;
    noPadding: boolean;
    bsStyle: BSStyle;
};
export declare const TAB_PANEL_STYLES: {
    TABS: string;
    PILLS: string;
    MENU: string;
};
export declare const TAB_PANEL_ITEM_ROLES: {
    menuitem: string;
    tab: string;
};
export declare class TabPanel extends React.Component<TabPanelProps, any> {
    static propTypes: {
        testAutomationId: PropTypes.Requireable<string>;
        children: PropTypes.Validator<PropTypes.ReactNodeLike>;
        centered: PropTypes.Requireable<boolean>;
        noBorder: PropTypes.Requireable<boolean>;
        topMenu: PropTypes.Requireable<boolean>;
        clearRightPadding: PropTypes.Requireable<boolean>;
        clearLeftPadding: PropTypes.Requireable<boolean>;
        clearLeftWrapperPadding: PropTypes.Requireable<boolean>;
        clearRightWrapperPadding: PropTypes.Requireable<boolean>;
        fullWidthBorder: PropTypes.Requireable<boolean>;
        noPadding: PropTypes.Requireable<boolean>;
        preserveBottomBorder: PropTypes.Requireable<boolean>;
        className: PropTypes.Requireable<string>;
        activeKey: PropTypes.Requireable<React.ReactText>;
        bsStyle: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        testAutomationId: string;
        centered: boolean;
        noBorder: boolean;
        topMenu: boolean;
        clearRightPadding: boolean;
        clearLeftPadding: boolean;
        clearLeftWrapperPadding: boolean;
        clearRightWrapperPadding: boolean;
        fullWidthBorder: boolean;
        preserveBottomBorder: boolean;
        noPadding: boolean;
        className: any;
        activeKey: any;
        bsStyle: string;
    };
    static contextTypes: {
        router: PropTypes.Requireable<object>;
    };
    static childContextTypes: {
        isStyledAsTab: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static getChildIndex(containerNode: any, childNode: any): number;
    static getItemPath(item: any): any;
    static isItemCanBeFocusedWithKeyboard(item: any): boolean;
    static isItemOfDropdownType(item: any): boolean;
    static isItemOfTabItemType(item: any): boolean;
    state: {
        focusedItemIndex: number;
        isAnyDropdownOpen: boolean;
        isDropdownOpen: boolean;
        dropdownOpenStatuses: {};
        panelTabIndex: number;
    };
    getChildContext(): {
        isStyledAsTab: () => string | number | boolean;
    };
    componentDidMount(): void;
    componentDidUpdate(previousProps: any, previousState: any): void;
    focusToItemNodeByIndex(focusedItemIndex: any): void;
    isStyledAsTab: () => string | number | boolean;
    focusActiveItem(): void;
    setFocusedItemByIndex: (index: any) => void;
    getActiveItemIndex(): any;
    handleClick: (event: any) => void;
    handleKeyDown: (event: any) => void;
    setActiveItem: (focusedTab: any, event: any) => void;
    activatePath: (activeTabPath: any) => void;
    getPreviousTab(): number;
    getNextTab(): number;
    handleFocus: (event: any) => void;
    handleFocusOut: (event: any) => void;
    handleDropdownToggle: (dropdownId: any, isOpen: any) => void;
    getChildren(): React.ReactChild[];
    render(): JSX.Element;
}
export {};
