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 { EditorValues } from '../editor-values.js'; /** Immutable values and identity shared by every Edit presentation. */ export interface EditTransaction { readonly mode: 'dialog' | 'inline'; readonly original: Readonly; readonly values: Readonly>; readonly collectedFieldValues: ReadonlyMap; readonly changedFields: readonly FieldPath[]; readonly target: Readonly; } /** Presentation validation result consumed by the shared Edit runner. */ export type EditValidationResult = { readonly valid: false; readonly error: AltEditorLiteError; } | { readonly valid: true; readonly values: Readonly>; readonly collectedFieldValues: ReadonlyMap; readonly changedFields: readonly FieldPath[]; }; /** Result of a committed replacement or consumer-owned refresh. */ export interface EditCommitResult { readonly row: Readonly; }