/** * astroengine anchored charts -- realize a {@link Realm} + anchors into a chart. * * This is where the provenance layer meets the two generators. Given what a * chart *is* and how its time/place are anchored, {@link realize} routes: * when an instant can be resolved it runs the ephemeris (`chartAt`); when it * cannot but constraints are supplied it runs the compiler's symbolic synthesis * (`compileForm`); otherwise it reports that nothing could be computed and why. * The realm rides along as framing for the interpretation layer. */ import { Engine, Chart, ChartOptions } from "./chart.js"; import { CompiledForm, Constraint } from "./compiler.js"; import { Realm, TemporalAnchor, SpatialAnchor, AnchorRegistry, ResolvedTime, ResolvedPlace } from "./provenance.js"; /** A chart described by its realm and anchors, not a bare (instant, place). */ export interface AnchoredChart { realm: Realm; when: TemporalAnchor; where?: SpatialAnchor; /** Constraints for the compiler path -- a chart with no instant * (archetypal / conceptual / symbolic). */ constraints?: Constraint[]; } /** The outcome of {@link realize}: how (or whether) a chart was produced. */ export interface RealizedChart { realm: Realm; /** `ephemeris` (an instant resolved), `compiler` (synthesized from * constraints), or `none` (neither was possible). */ via: "ephemeris" | "compiler" | "none"; time: ResolvedTime; place: ResolvedPlace; /** The computed chart, when an instant was available. */ chart: Chart | null; /** The synthesized form, when the compiler path ran. */ form: CompiledForm | null; note: string; } /** * Realize an {@link AnchoredChart}: resolve its anchors and run the appropriate * generator. A resolvable instant always wins (the realm is then just framing); * failing that, constraints synthesize a form; failing both, nothing computes. * * @param engine The engine for the ephemeris path. * @param anchored The realm + temporal/spatial anchors (+ optional constraints). * @param registry Lookups for relative/narrative/named anchors. * @param opts Chart options (house system, zodiac) for the ephemeris path. * @returns A {@link RealizedChart}; `chart`/`form` are null on the paths that * did not run. */ export declare function realize(engine: Engine, anchored: AnchoredChart, registry?: AnchorRegistry, opts?: ChartOptions): RealizedChart;