/** * Authoritative IR-level initialization plan. * * Construction semantics (docs/spec/semantics.md § Initialization Commands): * validate input → virtual draft → auth + dynamic guards → mutate draft → * validate final entity document → persist once. Nothing is persisted on failure. * * Projections and the reference runtime MUST consume this plan. They MUST NOT * invent separate creation heuristics. */ import type { IR, IRCommand, IREntity, IRExpression, IRInitializationPlan, IRTenant, IRValue } from './ir.js'; /** True when a guard asserts `self. == null` / `is null`. */ export declare function guardAssertsPropertyUnset(guard: IRExpression, property: string): boolean; /** * Build the authoritative initialization plan for a command, or undefined when * the command is not an allocating initialization command. */ export declare function buildInitializationPlan(entity: IREntity, command: IRCommand, tenant?: IRTenant): IRInitializationPlan | undefined; /** * Select the entity's initialization command. Prefer an explicit `create` * command; otherwise choose the allocating command with the strongest * creation signal (required-field footprint, then total owned fields). * * Plans are attached when missing so hand-built IR (tests) and legacy IR * still resolve through the same authority function. */ export declare function selectInitializationCommand(ir: IR, entity: IREntity): IRCommand | undefined; /** Attach initialization plans to every allocating command on the IR. */ export declare function attachInitializationPlans(entities: IREntity[], commands: IRCommand[], tenant?: IRTenant): void; /** Default IRValue lookup helper for projections/runtime draft builders. */ export declare function defaultValueForProperty(entity: IREntity, propertyName: string): IRValue | undefined; export declare function commandHasInitialization(command: IRCommand): boolean; //# sourceMappingURL=initialization-plan.d.ts.map