export interface NavItem { key: string; label: string; icon?: string; to?: string; /** Sort weight; higher = earlier. Default 0. */ priority?: number; /** Capability required to see this item. */ requires?: string; /** Nested children (rendered as a collapsible section). */ children?: NavItem[]; /** Group this item belongs to — items with the same group are clustered. */ group?: string; /** Source addon key (for debugging / telemetry). */ source?: string; } export interface AddonNavigationContribution { source: string; items: NavItem[]; } /** Deep-merge nav trees by `key`. Children are merged recursively; on * conflict the higher-priority wins, then the later contribution. */ export declare function mergeNavigation(base: NavItem[], contributions: AddonNavigationContribution[]): NavItem[]; export declare function useNavigation(base: NavItem[], contributions: AddonNavigationContribution[]): NavItem[]; export interface NavigationBuilderProps { base: NavItem[]; contributions: AddonNavigationContribution[]; render: (items: NavItem[]) => React.ReactNode; } /** Render-prop component for hosts that want the merge logic but render * the sidebar with their own primitives. */ export declare function NavigationBuilder({ base, contributions, render }: NavigationBuilderProps): import("react").JSX.Element; //# sourceMappingURL=navigation-builder.d.ts.map