import type { AltEditorLiteError } from '../core/alt-editor-lite-error.js'; import type { AltEditorLiteLanguage } from '../core/alt-editor-lite-language.js'; import type { AltEditorLiteOptions, EditorErrorHookContext } from '../core/alt-editor-lite-options.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 { EditorOperationTarget } from '../core/editor-operation.js'; import type { EditorValues } from '../core/editor-values.js'; import type { ResolvedEditingOptions } from '../core/resolve-editing-options.js'; import type { FieldConfig } from '../fields/field-config.js'; /** Host-neutral lifecycle state for optional inline editing. */ export type HostInlineState = { readonly status: 'disabled'; } | { readonly status: 'idle'; } | { readonly status: 'activating'; readonly target: Readonly; } | { readonly status: 'editing'; readonly target: Readonly; readonly dirty: boolean; } | { readonly status: 'validating' | 'submitting'; readonly target: Readonly; } | { readonly status: 'error'; readonly target: Readonly; readonly error: AltEditorLiteError; } | { readonly status: 'destroyed'; }; /** Services supplied to a Host that owns an inline editing presentation. */ export interface InlineHostRuntimeArguments { readonly editor: object; readonly enabled: boolean; readonly editOperationRunner: EditOperationRunner; readonly editorOptions: Readonly>; readonly fields: readonly FieldConfig[]; readonly instanceId: string; readonly interactionCoordinator: InteractionCoordinator; readonly language: Readonly; readonly notifyIntegration: () => void; readonly operationOwner: OperationOwner; readonly editing: Readonly>; readonly reportError: (error: AltEditorLiteError, context: EditorErrorHookContext, publishEvent: boolean) => void; readonly validateUnique: (values: Readonly>, excludedRow: TRow) => Readonly>; } /** Host-owned inline editing lifecycle used by the neutral editor runtime. */ export interface InlineHostRuntime { open(target: unknown): Promise; submit(): Promise; cancel(): Promise; getState(): Readonly; isEditing(): boolean; prepareForExternalOperation(): Promise; allowsExternalOperation(): boolean; destroy(): void; } /** Optional capability for Hosts that provide an inline presentation. */ export interface InlineHostRuntimeFactory { createInlineRuntime(arguments_: InlineHostRuntimeArguments): InlineHostRuntime; } /** Detects inline runtime support on a concrete Host. */ export declare function hasInlineHostRuntimeFactory(host: object): host is InlineHostRuntimeFactory;