/** * Runtime factory constructors for generated resource and property classes. * * Creates classes that implement the Declarable interface with DECLARABLE_MARKER, * lexicon, entityType, kind, and attribute references. */ import { type Declarable } from "./declarable.js"; /** * Create a resource class for a given type. * The returned constructor creates Declarable objects with: * - DECLARABLE_MARKER for type identification * - lexicon identifier * - entityType set to the resource type * - kind "resource" * - props stored from constructor argument * - AttrRef instances for each attribute */ export declare function createResource(type: string, lexicon: string, attrMap: Record): new (props: Record, attributes?: Record) => Declarable & Record; /** * Create a property-kind class for a given property type. * * Instances carry DECLARABLE_MARKER/lexicon/entityType/kind at runtime (set * via defineProperty below), so they already satisfy `Declarable` — the * return type just needs to say so. Before this, the signature was * `Record` with no `Declarable`, so any composite that * returned a property-kind instance as a top-level member only type-checked * by accident: either the caller went through an untyped `require()` (losing * the type entirely) or never assigned the instance where its `Declarable`-ness * was checked statically. See chant #1068. */ export declare function createProperty(type: string, lexicon: string): new (props: Record) => Declarable & Record; //# sourceMappingURL=runtime.d.ts.map