import { P as Product } from '../app-store-B5t8W1GX.js';
import { CustomProductBrand } from './custom-product-defaults.js';
import 'zustand/middleware';
import 'zustand';

/**
 * Multi-product URL routing helpers — custom product slugs, path resolution,
 * and reserved-segment guards. Built-in slugs stay in `./app-store.ts`;
 * tenant custom products use a slug derived from their suffix (e.g.
 * "Assessment" → `/assessment/dashboard`).
 */

/** Shell-global and built-in roots that custom suffix slugs must not collide with. */
declare const RESERVED_PRODUCT_ROOT_SEGMENTS: Set<string>;
declare function isBuiltInProductSlug(slug: string): boolean;
declare function isReservedProductRootSegment(slug: string): boolean;
/** Slugify a custom product suffix for the URL root (`Assessment` → `assessment`). */
declare function customProductSlugFromSuffix(suffix: string): string;
interface ResolvedProductRoute {
    product: Product;
    /** Set when the segment maps to a row in `customProducts[]`. */
    customIndex?: number;
}
/**
 * Leading URL segment → active product. Returns `null` for shell-global routes
 * (`/settings`, `/library`, …) and unknown segments.
 */
declare function resolveProductFromPath(pathname: string, customProducts?: CustomProductBrand[]): ResolvedProductRoute | null;
/** URL root segment for navigation — custom products use suffix slug, not `custom`. */
declare function productRouteSlug(product: Product, customProducts?: CustomProductBrand[], activeCustomIndex?: number): string;
declare function validateCustomProductSuffix(suffix: string, customProducts: CustomProductBrand[], excludeIndex?: number): string | null;

export { RESERVED_PRODUCT_ROOT_SEGMENTS, type ResolvedProductRoute, customProductSlugFromSuffix, isBuiltInProductSlug, isReservedProductRootSegment, productRouteSlug, resolveProductFromPath, validateCustomProductSuffix };
