import { FactorySignatureCatalog } from '@almadar/core';

/**
 * Factory Signature Catalog — typed loader for the publish-time
 * `factory-signatures.json` artifact under `behaviors/registry/`.
 *
 * The catalog is regenerated by `tools/almadar-pattern-sync` whenever a
 * factory or its inputs change. Each entry advertises the canonical
 * entity/trait/page surface plus source-tagged trait `capabilities`
 * (introduced in `@almadar/core@7.22.0`) — the deterministic key the
 * `@almadar/core` translator uses to project domain rules onto trait
 * stacks via exact set membership.
 *
 * Loader mirrors `getBehaviorEmbeddings()` / `getBehaviorRegistry()`:
 * resolves the JSON relative to `import.meta.url` (dist-relative at
 * publish time), parses on first call, caches in memory.
 *
 * @packageDocumentation
 */

/**
 * Return the typed factory-signature catalog. Returns `null` when the
 * JSON sidecar is missing (older std checkout that predates the
 * Phase-1 sync step, or a dev build with skipped post-build copy).
 * Consumers should treat `null` as a hard error — the catalog is the
 * deterministic source-of-truth for capability-based projection.
 */
declare function getFactorySignatureCatalog(): Promise<FactorySignatureCatalog | null>;

export { getFactorySignatureCatalog };
