import { type ReactNode } from "react";
export interface TabItem {
    /** Unique identifier for the tab, used as the `activeTab` value. */
    readonly id: string;
    /** Display label shown in the tab trigger. */
    readonly label: string;
    /** Optional numeric badge rendered next to the label (e.g. item count). */
    readonly badge?: number;
}
export interface TabsProps {
    /** Ordered list of tabs to render. Tabs with no matching content are still clickable. */
    readonly tabs: readonly TabItem[];
    /** The `id` of the currently active tab. */
    readonly activeTab: string;
    /** Called when the user selects a different tab. */
    readonly onTabChange: (tabId: string) => void;
    /**
     * Content to render in the active tab panel.
     * Typically a switch/map over `activeTab`.
     */
    readonly children: ReactNode;
    /** Accessible label for the tab list (e.g. "Capability sections"). */
    readonly "aria-label"?: string;
    /** Additional CSS classes for the root container. */
    readonly className?: string;
}
/**
 * Accessible tabbed panel with badge support.
 *
 * Implements the WAI-ARIA Tabs pattern:
 * - `role="tablist"` / `role="tab"` / `role="tabpanel"`
 * - Arrow-key navigation (Left/Right), Home/End to jump
 * - `aria-selected`, `aria-controls`, `aria-labelledby` wiring
 *
 * All visual properties flow through `--stgm-*` design tokens.
 * No external dependencies — safe for platform builder embedding.
 *
 * @internal — not yet part of the public `@stigmer/react` API.
 */
export declare function Tabs({ tabs, activeTab, onTabChange, children, "aria-label": ariaLabel, className, }: TabsProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Tabs.d.ts.map