import { ReactNode } from 'react';
/** Describes a single tab and its associated panel content. */
export interface TabItem {
    /** Unique ID for the tab item. */
    id: string;
    /** Explicit tab button ID (defaults to `${id}-tab`). */
    tabId?: string;
    /** Explicit panel ID (defaults to `${id}-panel`). */
    panelId?: string;
    /** Label displayed on the tab button. */
    label?: string | ReactNode;
    /** Icon rendered before the label. */
    icon?: ReactNode;
    /** Accessible label when icon-only (combined with label if both present). */
    iconA11yLabel?: string;
    /** Content rendered in the tab panel. */
    content: ReactNode;
    /** Whether the tab is disabled. */
    disabled?: boolean;
    /** Force hover state for demos. */
    hover?: boolean;
    /** Force focus state for demos. */
    focused?: boolean;
}
export interface TabsProps {
    /** Array of tab items to render. */
    tabs: TabItem[];
    /** ID for the tablist element. */
    id?: string;
    /** Controlled active tab ID. */
    activeTab?: string;
    /** Default active tab ID (uncontrolled). Defaults to the first tab. */
    defaultActiveTab?: string;
    /** Callback when the active tab changes. */
    onTabChange?: (id: string) => void;
    /** Accessible label for the tablist. */
    ariaLabel?: string;
    /** Enable inverse (dark background) styling. */
    inverse?: boolean;
    /** Additional CSS class names on the root element. */
    className?: string;
}
//# sourceMappingURL=Tabs.types.d.ts.map