import { type AltEditorLiteError } from '../core/alt-editor-lite-error.js'; import { type EditorCloseReason } from '../core/editor-event.js'; import type { InlineColumnMapping } from './inline-column-mapping.js'; import type { InlineEditState } from './inline-edit-state.js'; import type { InlineEditViewFactory } from './inline-edit-view-factory.js'; import type { ResolvedInlineInteractionBehavior } from './inline-interaction-behavior.js'; import type { AltEditorLiteLanguage } from '../core/alt-editor-lite-language.js'; import type { AltEditorLiteOptions, EditorErrorHookContext } from '../core/alt-editor-lite-options.js'; import type { AltEditorLite } from '../core/alt-editor-lite.js'; import type { EditOperationRunner } from '../core/editing/edit-operation-runner.js'; import type { InteractionCoordinator } from '../core/editing/interaction-coordinator.js'; import type { OperationOwner } from '../core/editing/operation-owner.js'; import type { EditorValues } from '../core/editor-values.js'; import type { ResolvedInlineEditingOptions } from '../core/resolve-editing-options.js'; import type { DataTablesHost } from '../datatables/datatables-host.js'; import type { FieldConfig } from '../fields/field-config.js'; import type { Api, ColumnSelector, RowSelector } from 'datatables.net'; export interface InlineEditSessionControllerArguments { readonly enabled: boolean; readonly editor: AltEditorLite; readonly table: Api; readonly tableElement: HTMLTableElement; readonly fields: readonly FieldConfig[]; readonly mappings: ReadonlyMap>>; readonly options: Readonly>; readonly editorOptions: Readonly>; readonly language: Readonly; readonly instanceId: string; readonly interactionCoordinator: InteractionCoordinator; readonly operationOwner: OperationOwner; readonly editOperationRunner: EditOperationRunner; readonly host: DataTablesHost; readonly validateUnique: (values: Readonly>, excludedRow: TRow) => Readonly>; readonly reportError: (error: AltEditorLiteError, context: EditorErrorHookContext, publishEvent: boolean) => void; readonly notifyIntegration: () => void; readonly interactionBehavior: Readonly; readonly viewFactory: InlineEditViewFactory; readonly onSessionStart?: () => void; readonly onSessionEnd?: () => void; } /** Owns one inline editing session at a time. */ export declare class InlineEditSessionController { private readonly arguments_; private readonly fieldsByName; private readonly sessionFactory; private readonly validationController; private readonly commitCoordinator; private readonly focusCoordinator; private state; private session; private activationAbortController; private activationInteractionToken; private changeAbortController; private nextSessionId; private isDestroyed; constructor(arguments_: InlineEditSessionControllerArguments); /** Opens one uniquely resolved eligible cell. */ open(rowSelector: RowSelector, columnSelector: ColumnSelector): Promise; /** Validates and submits the active candidate. */ submit(): Promise; /** Cancels activation, validation, persistence, or an open inline session. */ cancel(reason?: EditorCloseReason): Promise; /** Returns the current immutable inline state. */ getState(): Readonly; /** Returns whether activation or an open session currently owns inline state. */ isEditing(): boolean; /** Removes all listeners and owned DOM resources. */ destroy(): void; private createPresentation; private readonly handleExternalDraw; private readonly handleFocusOut; private readonly handleKeyDown; private readonly handleEscapeKeyDown; private readonly handleUserChange; private cleanupSession; private throwRejectedResult; private releaseActivationInteraction; private transitionTo; private replaceEditingState; private assertActive; private readonly stopOwnedPointerEvent; }