import type { InlineEditSession } from './inline-edit-session.js'; import type { AltEditorLiteError } from '../core/alt-editor-lite-error.js'; import type { AltEditorLiteLanguage } from '../core/alt-editor-lite-language.js'; import type { EditorErrorHookContext } from '../core/alt-editor-lite-options.js'; import type { EditValidationResult } from '../core/editing/edit-transaction.js'; import type { EditorValues } from '../core/editor-values.js'; import type { FieldConfig } from '../fields/field-config.js'; import type { FormValidator } from '../form/form-validation.js'; import type { Api } from 'datatables.net'; export interface InlineValidationControllerArguments { readonly fields: readonly FieldConfig[]; readonly language: Readonly; readonly table: Api; readonly validateForm?: FormValidator; readonly validateUnique: (values: Readonly>, excludedRow: TRow) => Readonly>; readonly reportError: (error: AltEditorLiteError, context: EditorErrorHookContext, publishEvent: boolean) => void; readonly isCurrentSession: (session: InlineEditSession) => boolean; readonly presentFailure: (session: InlineEditSession, error: AltEditorLiteError, message: string | undefined) => Promise; } /** Builds inline candidates and owns field, uniqueness, and change validation. */ export declare class InlineValidationController { private readonly arguments_; private readonly fieldNames; constructor(arguments_: InlineValidationControllerArguments); /** Validates the active candidate for the shared Edit transaction. */ validate(session: InlineEditSession, signal: AbortSignal): Promise>>; /** Runs the active field callback and retains only its current failure. */ runOnChange(session: InlineEditSession, signal: AbortSignal, revision: number): Promise; private validationFailure; }