/** * Input and registry validation for the observation writer. * * Validation happens before the writer opens its transaction so malformed * adapter input never creates a partial receipt or event occurrence. */ import type { ObservedEditBatch } from "../../../contracts/domain/model/types.js"; import type { NewEffect } from "@hikoutei/ikisaki"; import type { SqlExecutor } from "../../../contracts/storage/sql.js"; import { type PersistObservedRowInput } from "./observationTypes.js"; /** Validates one complete writer submission before durable mutation begins. */ export declare function validatePersistObservedRowInput(input: PersistObservedRowInput): void; /** Requires a valid row index and returns its observed row. */ export declare function requireBatchRow(batch: ObservedEditBatch, rowIndex: number): import("../../../contracts/domain/model/types.js").ObservedRowChange; /** * Ensures the observed projection is enabled through the active async SQL * context. This keeps registry validation in the same transaction as the * observation receipt it protects. */ export declare function ensureRegisteredProjectionWithSql(sql: SqlExecutor, batch: ObservedEditBatch, physicalSheetId: string): Promise; /** Validates every generated effect target through the active async SQL context. */ export declare function ensureEffectsTargetRegisteredWithSql(sql: SqlExecutor, logicalSheetId: string, effects: readonly NewEffect[]): Promise; //# sourceMappingURL=observationValidation.d.ts.map