import React, { FC, ComponentType, HTMLAttributes, ReactElement, ReactNode, Ref } from 'react';
import { DropdownButtonProps } from './DropdownButton';
import { Bivariant } from './typeUtils';
/**
*
*/
type TabKey = string | number;
export type TabType = 'default' | 'scoped';
/**
*
*/
export type TabContentProps = {
active?: boolean;
} & HTMLAttributes;
/**
*
*/
export type TabMenuProps = DropdownButtonProps;
/**
*
*/
export type TabItemRendererProps = {
type?: TabType;
title?: string;
alt?: string;
menu?: ReactElement;
menuItems?: ReactElement[];
menuIcon?: string;
eventKey?: TabKey;
activeKey?: TabKey;
activeTabRef?: Ref;
children?: ReactNode;
onTabClick?: Bivariant<(eventKey: TabKey) => void>;
onTabKeyDown?: Bivariant<(eventKey: TabKey, e: React.KeyboardEvent) => void>;
tooltip?: ReactNode;
tooltipIcon?: string;
};
/**
*
*/
export type TabItemProps = {
tabItemRenderer?: ComponentType;
rendererProps?: Omit;
} & Omit;
/**
*
*/
export type TabProps = {
className?: string;
eventKey?: TabKey;
children?: ReactNode;
} & TabItemProps;
export declare const Tab: (props: TabProps) => React.JSX.Element;
/**
*
*/
export type TabsProps = {
className?: string;
type?: TabType;
defaultActiveKey?: TabKey;
activeKey?: TabKey;
children?: ReactNode;
onSelect?: Bivariant<(tabKey: TabKey) => void>;
};
/**
*
*/
export declare const Tabs: FC;
export {};