import { S as SerializableNavLink, c as TenantProductRecord, d as TenantStore } from '../../hydrate-Z3OhTVLs.js';
export { H as HydrateTenantProductsOptions, f as HydrateTenantProductsResult, i as TENANT_PRODUCT_DATA_VERSION, T as TENANT_STORE_KEY, a as TENANT_STORE_VERSION, j as TenantMigrationResult, b as TenantProductDataBag, k as TenantStoreMeta, e as deleteTenantProductPermanently, n as emptyProductDataBag, o as emptyTenantStore, g as getTenantProductData, p as getTenantProductDataFromLegacyOrBag, h as hydrateTenantProducts, q as importLegacyKeyIntoProduct, l as listTenantProducts, m as mergeCodeProductsIntoTenantStore, r as readTenantProductDataBag, t as registerProductsFromTenantStore, v as removeTenantProduct, w as removeTenantProductData, x as runTenantProductMigration, s as setTenantProductData, y as setTenantProductDataWithLegacyMirror, z as syncCustomProductsIntoCatalog, A as syncCustomProductsMirror, u as upsertUserTenantProductFromBrand } from '../../hydrate-Z3OhTVLs.js';
import { CustomProductBrand } from '../custom-product-defaults.js';
import { ProductDefinition, ProductNavLink } from '../product-registry.js';
import 'react';
import '../../app-store-B5t8W1GX.js';
import 'zustand/middleware';
import 'zustand';
import '../product-brand.js';

/**
 * Default nav + metadata for tenant products created from Settings
 * (Prism-equivalent IA under `/<slug>/…`).
 */

/** Build Prism-shaped sidebar links for a tenant product slug. */
declare function defaultTenantNavForSlug(slug: string): SerializableNavLink[];
declare const DEFAULT_TENANT_BRAND_PREFIX = "Exxat";

/**
 * Load / save the unified tenant product store (`exxat-ds:tenant-store:v1`).
 */

declare function loadTenantStore(): TenantStore;
declare function saveTenantStore(store: TenantStore): void;
declare function getActiveCatalog(store: TenantStore): TenantProductRecord[];
declare function getTenantProductById(store: TenantStore, id: string): TenantProductRecord | undefined;
declare function getTenantProductBySlug(store: TenantStore, slug: string): TenantProductRecord | undefined;
/** Mirror for legacy `customProducts[]` + routing helpers. */
declare function catalogToCustomProducts(catalog: TenantProductRecord[]): CustomProductBrand[];
/** Settings / switcher mirror — user-created products only (not `registerProducts` code seeds). */
declare function userCatalogToCustomProducts(catalog: TenantProductRecord[]): CustomProductBrand[];
declare function listLegacyStorageKeysForSlug(slug: string): string[];
/** Relative path inside `exxat-ds:` (e.g. `assessment:library:lifecycle:v1:main`). */
declare function legacyKeyToRelativePath(fullKey: string): string;

/**
 * Convert between persisted tenant records and runtime {@link ProductDefinition}.
 */

declare function serializableNavToRuntime(links: SerializableNavLink[]): ProductNavLink[];
declare function tenantRecordToDefinition(record: TenantProductRecord): ProductDefinition;
declare function definitionToTenantRecord(def: ProductDefinition, source: "user" | "code", existing?: TenantProductRecord): TenantProductRecord;
declare function brandToTenantRecord(input: {
    suffix: string;
    brandColor: string;
    id?: string;
}): TenantProductRecord;

export { DEFAULT_TENANT_BRAND_PREFIX, SerializableNavLink, TenantProductRecord, TenantStore, brandToTenantRecord, catalogToCustomProducts, defaultTenantNavForSlug, definitionToTenantRecord, getActiveCatalog, getTenantProductById, getTenantProductBySlug, legacyKeyToRelativePath, listLegacyStorageKeysForSlug, loadTenantStore, saveTenantStore, serializableNavToRuntime, tenantRecordToDefinition, userCatalogToCustomProducts };
