import { ReactNode } from 'react'; import { SecondarySidebarInfo } from '../SidebarV2/types'; export type MerchantInfoV2 = { items: Array<{ label: string; value: string; icon?: ReactNode; }>; selected: string; onSelect: (value: string) => void; }; export type TopbarV2Props = { children?: ReactNode; /** Sidebar expansion state */ isExpanded?: boolean; /** * @reserved Toggle expansion callback. Accepted for future implementation * of an in-topbar toggle button. Currently a no-op. */ onToggleExpansion?: () => void; /** * @reserved Controls toggle button visibility. Accepted for future * implementation. Currently a no-op. */ showToggleButton?: boolean; /** * @reserved When true, hides toggle button (used in panel-only mode). * Accepted for future implementation. Currently a no-op. */ panelOnlyMode?: boolean; /** Controlled mode: Show/hide topbar */ isVisible?: boolean; /** Callback when visibility changes (controlled mode) */ onVisibilityChange?: (visible: boolean) => void; /** Uncontrolled mode: Initial topbar visibility (defaults to true) */ defaultIsVisible?: boolean; sidebarTopSlot?: ReactNode; topbar?: ReactNode; leftAction?: ReactNode; rightActions?: ReactNode; showBackButton?: boolean; onBackClick?: () => void; secondarySidebar?: SecondarySidebarInfo; merchantInfo?: MerchantInfoV2; /** * @reserved ARIA controls ID for the sidebar navigation. Accepted for * future implementation. Currently a no-op. */ ariaControls?: string; };