import React, { ReactElement } from "react";
import { CollectionChildren } from "@react-types/shared";
declare type Tab<Key extends string> = {
    key: Key;
    title: string;
    isDisabled?: boolean;
    children: React.ReactElement;
};
declare type TabContainerProps<TabKey extends string> = {
    /** An HTML ID attribute that will be attached to the the rendered component. Useful for targeting it from tests */
    id?: string;
    /** A string describing what this TabContainer represents. Required for accesibility. */
    label: string;
    /** A list of Tabs (with their content) to render inside this Tab.Container */
    children: CollectionChildren<Tab<TabKey>>;
    /** Key of the Tab that is active when this TabContainer is first rendered */
    defaultSelectedKey?: TabKey;
    /** Key of the currently active Tab */
    selectedKey?: TabKey;
    /** Callback invoked when the active Tab changes */
    onSelectionChange?: (key: TabKey) => void;
};
declare function TabContainer<TabKey extends string>({ id, label, children, defaultSelectedKey, selectedKey, onSelectionChange, }: TabContainerProps<TabKey>): JSX.Element;
export declare const Tab: {
    Container: typeof TabContainer;
    Tab: <Key extends string>(props: Tab<Key>) => React.ReactElement;
};
export {};
