import { ElementType, HTMLAttributes, KeyboardEvent, MouseEvent, ReactNode } from 'react';
import { PolymorphicComponentProps } from '../../utils/types';
import { IconName, IconProps } from '../Icon';
interface TabBaseProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
    /**
     * Tab title
     * @since 0.0.35
     */
    title: ReactNode;
    /**
     * Label in tab title
     * @since 0.0.42
     */
    label?: ReactNode;
    /**
     * Name of icon or Icon component for tab
     * @since 0.0.42
     */
    icon?: IconName | IconProps | ReactNode;
    /**
     * Activate callback.
     * @since 0.0.43
     */
    onActivate?: () => void;
    /**
     * Close callback
     * @since 0.0.58
     */
    onClose?: (e: MouseEvent) => void;
    /**
     * Tab content
     * @since 0.0.47
     */
    children?: ReactNode;
    /**
     * @ignore
     */
    tabIndex?: number;
    /**
     * @ignore
     */
    onKeyDown?: (e: KeyboardEvent<HTMLElement>) => void;
}
export type TabProps<Component extends ElementType = 'div'> = {
    /**
     * Component to render as the root element.
     * @since 2.5.1
     * @type ElementType
     * @default a
     */
    component?: Component;
} & PolymorphicComponentProps<Component, TabBaseProps>;
/**
 * `Tab` is an individual element of the [Tabs](#!/Tabs) component.
 *
 * Each `Tab` can display an icon near the tab name for easier identification.
 * It can also display a [Label](#!/Label) next to the tab name for showing additional information about its content.
 * You can make `Tabs` closeable, for example, if you are using them for opening and displaying files.
 * @since 0.0.35
 */
declare const Tab: <T extends ElementType = "div">({ children }: TabProps<T>) => import("react/jsx-runtime").JSX.Element;
export default Tab;
