import { ReactNode } from 'react'; export interface UnifiedTabItem { key: string; /** §13 — ReactNode, not string (allows links/badges/fragments). */ label: ReactNode; /** §13 — element, not a component-type (accepts or a lucide element). */ icon?: ReactNode; /** Static count badge; overridable per-render via UnifiedTabsProps.getCount. */ count?: number; disabled?: boolean; /** Only consulted by variant="overflow": "overflow" items collapse into "More ▾". */ group?: "primary" | "overflow"; } export interface UnifiedTabsProps { tabs: UnifiedTabItem[]; /** Controlled active key. Aligned with the sibling `Tabs` (activeTab/onTabChange). */ activeTab?: string; /** Uncontrolled initial key (defaults to the first non-disabled tab). */ defaultTab?: string; onTabChange?: (key: string) => void; variant?: "underline" | "segmented" | "overflow"; /** History-API URL sync (router-agnostic). true => { param:"tab", history:"replace" }. */ urlSync?: boolean | { param?: string; history?: "replace" | "push"; }; /** nodes for keep-mounted content (optional). */ children?: ReactNode; /** Dynamic override of item.count. */ getCount?: (key: string) => number | undefined; className?: string; } export interface UnifiedTabPanelProps { tabKey: string; /** Optional; falls back to the enclosing UnifiedTabs context. */ activeKey?: string; mount?: "eager" | "lazy-persist" | "lazy-remount"; children: ReactNode; className?: string; } export declare function UnifiedTabs({ tabs, activeTab: controlledValue, defaultTab, onTabChange, variant, urlSync, children, getCount, className, }: UnifiedTabsProps): import("react").JSX.Element; export declare function UnifiedTabPanel({ tabKey, activeKey: activeKeyProp, mount, children, className, }: UnifiedTabPanelProps): import("react").JSX.Element | null; //# sourceMappingURL=UnifiedTabs.d.ts.map