import { AltEditorLiteError } from '../core/alt-editor-lite-error.js'; import type { FormValidationResult } from './form-validation.js'; import type { EditorValues } from '../core/editor-values.js'; import type { ManagedFieldController } from '../fields/managed-field-controller.js'; /** Internal callback for Host-scoped local uniqueness checks. */ export type LocalUniqueValidator = (values: Readonly>) => Readonly>; /** Form-level callback with its public operation context already bound. */ export type BoundFormValidator = (values: Readonly>, signal: AbortSignal) => FormValidationResult | PromiseLike>; export type ValidationExecutionResult = { readonly valid: true; readonly values: Readonly>; } | { readonly valid: false; readonly error: AltEditorLiteError; readonly message?: string; }; export interface FormValidationRunnerArguments { readonly allowedFieldNames: ReadonlySet; readonly controllers: readonly ManagedFieldController[]; readonly collectValues: (signal: AbortSignal) => Readonly> | PromiseLike>>; readonly invalidMessage: string; readonly validateUnique?: LocalUniqueValidator; readonly validateForm?: BoundFormValidator; readonly beforeFormValidation?: (signal: AbortSignal) => AltEditorLiteError | undefined | PromiseLike; } /** Runs native, field, uniqueness, and form-level validation in stable order. */ export declare class FormValidationRunner { private readonly arguments_; constructor(arguments_: FormValidationRunnerArguments); run(signal: AbortSignal): Promise>; private validateNative; private validateFields; private validateFormResult; private failure; }