import { TabListProps as AriaTabListProps, TabPanelProps as AriaTabPanelProps, TabProps as AriaTabProps, TabsProps as AriaTabsProps } from 'react-aria-components/Tabs';
import { DOMRefValue, GlobalDOMAttributes } from '@react-types/shared';
import { ContextValue } from 'react-aria-components/slots';
import { ReactNode } from 'react';
import { StyleProps, StylesPropWithHeight, UnsafeStyles } from './style-utils';
export interface TabsProps extends Omit<AriaTabsProps, 'className' | 'style' | 'render' | 'children' | keyof GlobalDOMAttributes>, UnsafeStyles {
    /** Spectrum-defined styles, returned by the `style()` macro. */
    styles?: StylesPropWithHeight;
    /** The content to display in the tabs. */
    children: ReactNode;
    /**
     * The amount of space between the tabs.
     * @default 'regular'
     */
    density?: 'compact' | 'regular';
    /**
     * Defines if the text within the tabs should be hidden and only the icon should be shown.
     * The text is always visible when the item is collapsed into a picker.
     * @default 'show'
     */
    labelBehavior?: 'show' | 'hide';
}
export interface TabProps extends Omit<AriaTabProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
    /** The content to display in the tab. */
    children: ReactNode;
}
export interface TabListProps<T> extends Omit<AriaTabListProps<T>, 'style' | 'className' | 'render' | 'aria-label' | 'aria-labelledby' | keyof GlobalDOMAttributes>, StyleProps {
    /** The content to display in the tablist. */
    children: ReactNode | ((item: T) => ReactNode);
}
export interface TabPanelProps extends Omit<AriaTabPanelProps, 'children' | 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, UnsafeStyles {
    /** Spectrum-defined styles, returned by the `style()` macro. */
    styles?: StylesPropWithHeight;
    /** The content to display in the tab panels. */
    children: ReactNode;
}
export declare const TabsContext: import("react").Context<ContextValue<Partial<TabsProps>, DOMRefValue<HTMLDivElement>>>;
/**
 * Tabs organize content into multiple sections and allow users to navigate between them. The content under the set of tabs should be related and form a coherent unit.
 */
export declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<DOMRefValue<HTMLDivElement>>>;
export declare function TabList<T extends object>(props: TabListProps<T>): ReactNode | null;
export declare function Tab(props: TabProps): ReactNode;
export declare function TabPanel(props: TabPanelProps): ReactNode | null;
