/** * Assembly catalog — 7-arm closed vocabulary of capsule kinds. * `defineCapsule` validates a contract, computes its content address, * and registers it in the module-level catalog for the compiler to walk. * * @module */ import type { CapsuleContract, AssemblyKind } from './capsule.js'; import type { ContentAddress } from './brands.js'; /** A capsule declaration plus its content-addressed id. */ export interface CapsuleDef extends CapsuleContract { readonly id: ContentAddress; } /** * Declare a capsule. Validates shape, computes content address, * registers in the module-level catalog, returns a typed def. * No runtime behavior beyond registration — behavior comes from * the harness/compiler walking the catalog. */ export declare function defineCapsule(decl: Omit, 'id'>): CapsuleDef; /** Read-only snapshot of all registered capsules. */ export declare function getCapsuleCatalog(): readonly CapsuleDef[]; /** Clear the registry. Intended for tests and hot-reload only. */ export declare function resetCapsuleCatalog(): void; //# sourceMappingURL=assembly.d.ts.map