import { Product } from '@exxatdesignux/product-framework/app-store'; /** * Bidirectional sync between the active product (app store) and the URL. * * - **URL → store** (this component): when the user lands on or follows a * deep link to `//...` while the store says a different * product, the store adopts the URL's product. URL is source of truth. * * - **Store → URL** (`useProductSwitch` below, called from switcher click * handlers): the store updates AND we hard-navigate to * `//dashboard`. We do this in the click handler — not in an * effect — to keep the click ↔ navigate causality explicit. * * Mount once inside `ProductProvider` and inside the router. */ declare function ProductRouteSync(): null; /** Product-scoped dashboard href for breadcrumbs and shell links. */ declare function useProductDashboardHref(): string; /** Organization / workspace settings (products, tenant branding) under the active product root. */ declare function useProductOrganizationSettingsHref(): string; /** * Hook for product-switcher click handlers. Returns a callback that flips * the active product AND hard-navigates to `//dashboard`. * * The two operations happen in the same tick so the user sees one visual * change (theme + URL flip together), not a brief flash of the old product * on the new dashboard. `replace: false` so browser `Back` returns the user * to where they were in the previous product. */ declare function useProductSwitch(): (next: Product, customIndex?: number) => void; export { ProductRouteSync, useProductDashboardHref, useProductOrganizationSettingsHref, useProductSwitch };