/** * Projection-effect planning for mapped entity lifecycle changes. * * This module derives system-state and user-input effects from the SQLite * baseline. It does not execute them; the outbox worker remains responsible * for materializing effects through the sync provider. */ import { type EffectTargetKind } from "../../../contracts/domain/model/constants.js"; import type { NormalizedCell } from "../../../contracts/encoding/types.js"; import type { NewEffect, RegisteredSyncSheet, SqlExecutor } from "../support/contracts.js"; import { type ProjectionBaseline, type ResolvedWriterOptions } from "../support/contracts.js"; import { type ScalarEntityFlushChange } from "../../../contracts/storage/scalar.js"; import { type TypedSheetsEntityFieldMapping, type TypedSheetsEntityMapping, type TypedSheetsEntityProjectionMapping } from "../../mapping/entityMapping.js"; /** Plans all projection effects required by one mapped entity lifecycle change. */ export declare function projectionEffects(sql: SqlExecutor, writer: ResolvedWriterOptions, mapping: TypedSheetsEntityMapping, entityId: string, rowBindingId: string, anchor: string, encodedEntity: Readonly>, changeKind: ScalarEntityFlushChange["kind"], changedFields: readonly TypedSheetsEntityFieldMapping[], commitId: string, targetEntityRevision: number, options?: { readonly includeUserProjection?: boolean; }): Promise; /** Loads and validates the registered route for a mapped projection. */ export declare function requireMappedRoute(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, projection: TypedSheetsEntityProjectionMapping): Promise; /** Derives the next visible revision/hash from queued or confirmed state. */ export declare function projectionBaseline(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, projection: TypedSheetsEntityProjectionMapping, rowBindingId: string, targetKind: EffectTargetKind, targetId: string): Promise; /** Reads the last confirmed visible state when no effect is currently queued. */ export declare function projectionBaselineFromConfirmedState(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, projection: TypedSheetsEntityProjectionMapping, rowBindingId: string, streamSequence: number): Promise; //# sourceMappingURL=projectionEffects.d.ts.map