import type { FieldPath } from '../../object-path/field-path.js'; import type { AltEditorLiteError } from '../alt-editor-lite-error.js'; import type { EditorOperationTarget } from '../editor-operation.js'; import type { BatchChanges } from '../editor-values.js'; /** Immutable changes and identities shared by a batch edit operation. */ export interface BatchEditTransaction { readonly changes: Readonly>; readonly changedFields: readonly FieldPath[]; readonly collectedFieldValues: ReadonlyMap; readonly originals: readonly Readonly[]; readonly recordTargets: readonly TTarget[]; readonly targets: readonly Readonly[]; } /** Validation result consumed by the batch edit transaction runner. */ export type BatchEditValidationResult = { readonly valid: false; readonly error: AltEditorLiteError; } | { readonly valid: true; readonly changes: Readonly>; readonly changedFields: readonly FieldPath[]; readonly collectedFieldValues: ReadonlyMap; }; /** Canonical rows committed by a successful batch edit operation. */ export interface BatchEditCommitResult { readonly rows: readonly Readonly[]; }