/** * MikroORM bridge for applying accepted Sheet observations to mapped entities. * * It deliberately uses MikroORM's native write methods rather than the public * Unit of Work. The observation has already created its canonical and * outbox records, and replaying `onFlush` here would incorrectly schedule a * second outbound Sheets projection. */ import type { FencingContext } from "@hikoutei/ikisaki"; import { type PersistObservedRowInput, type PersistObservedRowResult } from "../../../../storage/state/observation/observationWriter.js"; import type { TypedSheetsEntityMapping, TypedSheetsEntityMappingRegistry } from "../../../../contracts/sync-orm/mapping/contracts.js"; import type { ResolvedWriterOptions } from "../../../../orm/persistence/support/contracts.js"; import type { MikroOrmSqliteAdapter } from "../storage/MikroOrmSqliteAdapter.js"; /** Input for committing one pre-evaluated Sheet observation and its entity update together. */ export interface PersistMappedObservedRowOptions { readonly mappings: TypedSheetsEntityMappingRegistry | readonly TypedSheetsEntityMapping[]; readonly fence: FencingContext; readonly writer: ResolvedWriterOptions; readonly input: PersistObservedRowInput; } /** * Persists a normalized observation and the matching MikroORM entity mutation * in one SQLite transaction. * * Only a `persisted` observation with a present canonical commit can * change the entity table. Duplicate, quarantined, stale, fenced-out, and * conflict-only observations leave application entities untouched. * * S3516 accepted: every path returns the same `result` object by design — * the branches differ only in side effects (OPEN-conflict audit projection, * mapped entity mutation), never in the returned observation outcome. */ export declare function persistMappedObservedRowWithMikroOrm(storage: MikroOrmSqliteAdapter, options: PersistMappedObservedRowOptions): Promise; //# sourceMappingURL=MikroOrmMappedObservation.d.ts.map