import { EntityNode, ManifestProgram } from './types'; /** * Entity composition expander: resolves entity inheritance (extends) and mixins, * merging properties, relationships, constraints, policies, and command names. * * Precedence: parent → mixins → own; own wins on name conflict. * Own-only: transitions, approvals, reactions, store, key, alternateKeys, * versionProperty, versionAtProperty, timestamps, realtime. */ export interface EntityIndex { [name: string]: EntityNode; } export declare function expandEntityComposition(program: ManifestProgram, emitDiagnostic: (severity: 'error' | 'warning', message: string) => void, /** * Optional project-wide index of entities declared in OTHER files of the same * compile unit. Used by the multi-file compiler so that an entity can `extends` * or `mixin` a base declared in a different file. These external entities are * only consulted for composition resolution (parent/mixin lookup); the local * file's own entities always take precedence, and externals never count toward * the local duplicate-declaration check (cross-file duplicates are validated * separately by the multi-compiler). */ externalEntities?: EntityIndex): ManifestProgram; //# sourceMappingURL=entity-composition.d.ts.map