import { AltEditorLiteError } from '../core/alt-editor-lite-error.js'; import type { FormDependencies } from './form-dependency.js'; import type { FormValidator } from './form-validation.js'; import type { AltEditorLiteLanguage } from '../core/alt-editor-lite-language.js'; import type { BatchEditValidationResult } from '../core/editing/batch-edit-transaction.js'; import type { DialogTemplateSource } from '../core/editing-options.js'; import type { BatchChanges } from '../core/editor-values.js'; import type { FieldConfig } from '../fields/field-config.js'; import type { FieldController } from '../fields/field-controller.js'; import type { FieldPath, FieldPathValue } from '../object-path/field-path.js'; /** DOM-backed logical form for applying common values to multiple records. */ export declare class BatchEditorFormController { private readonly fields; private readonly language; private readonly validateForm?; readonly element: HTMLFormElement; private readonly bindingByName; private readonly dependencyFieldByName; private readonly lifecycleAbortController; private readonly pendingChangeTasks; private readonly activeChangeAbortControllers; private readonly layout; private readonly submissionErrorElement; private readonly submissionMessages; private readonly configuredFieldNames; private readonly invalidMessage; private readonly fieldValidation; private readonly batchValidationMessage; private dependencyController; private originals; private bindings; private isDestroyed; revision: number; onMutation: (() => void) | undefined; private recordMutation; constructor(fields: readonly FieldConfig[], originals: readonly Readonly[], instanceId: string, language: Readonly, template?: DialogTemplateSource, validateForm?: FormValidator | undefined, dependencies?: Readonly>, onDependencyError?: (sourcePath: string, error: AltEditorLiteError) => void); /** Retrieves one public field facade backed by semantic batch state. */ getField>(name: TPath): FieldController> | null; /** Resolves dependencies for fields with an initial common value. */ initializeDependencies(): Promise; /** Collects only fields with an explicit common override. */ collectChanges(): Promise<{ readonly changes: Readonly>; readonly changedFields: readonly FieldPath[]; readonly collectedFieldValues: ReadonlyMap; }>; /** Validates every overridden field and returns the exact common changes. */ validateForSubmission(operationSignal: AbortSignal): Promise>>; /** Rebuilds baselines from newly committed canonical rows. */ rebase(originals: readonly Readonly[]): Promise; /** Reports whether any batch field differs from its current baseline. */ isDirty(): Promise; /** Updates the form busy state. */ setBusy(isBusy: boolean): void; /** Displays operation errors through field and form presentation. */ showSubmissionError(error: AltEditorLiteError): void; /** Clears obsolete operation-level feedback while preserving field validation. */ clearSubmissionError(): void; /** Clears field and form errors. */ clearErrors(): void; /** Removes owned callbacks, controllers, and DOM. */ destroy(): void; private createBinding; private queueUserValue; private queueKnownUserValue; private startUserChange; private runLogicalChange; private waitForChanges; private collectLogicalValues; private applyDependencyValue; private afterDependencyPatch; private validateBinding; private destroyBinding; private renderSubmissionError; private assertActive; }