import type { Transaction, EditorState, ChangeDesc } from '@codemirror/state'; import { StateField } from '@codemirror/state'; import type { Tooltip } from '@codemirror/view'; import type { CompletionSource, CompletionResult } from './completion.js'; import { Option } from './completion.js'; import type { CompletionConfig } from './config.js'; declare class CompletionDialog { readonly options: readonly Option[]; readonly attrs: Record; readonly tooltip: Tooltip; readonly timestamp: number; readonly selected: number; constructor(options: readonly Option[], attrs: Record, tooltip: Tooltip, timestamp: number, selected: number); setSelected(selected: number, id: string): CompletionDialog; static build(active: readonly ActiveSource[], state: EditorState, id: string, prev: CompletionDialog | null, conf: Required): CompletionDialog | null; map(changes: ChangeDesc): CompletionDialog; } export declare class CompletionState { readonly active: readonly ActiveSource[]; readonly id: string; readonly open: CompletionDialog | null; constructor(active: readonly ActiveSource[], id: string, open: CompletionDialog | null); static start(): CompletionState; update(tr: Transaction): CompletionState; get tooltip(): Tooltip | null; get attrs(): Record | { 'aria-autocomplete': string; }; } export declare const enum State { Inactive = 0, Pending = 1, Result = 2 } export declare function getUserEvent(tr: Transaction): 'input' | 'delete' | null; export declare class ActiveSource { readonly source: CompletionSource; readonly state: State; readonly explicitPos: number; constructor(source: CompletionSource, state: State, explicitPos?: number); hasResult(): this is ActiveResult; update(tr: Transaction, conf: Required): ActiveSource; handleUserEvent(tr: Transaction, type: 'input' | 'delete', conf: Required): ActiveSource; handleChange(tr: Transaction): ActiveSource; map(changes: ChangeDesc): ActiveSource; } export declare class ActiveResult extends ActiveSource { readonly result: CompletionResult; readonly from: number; readonly to: number; constructor(source: CompletionSource, explicitPos: number, result: CompletionResult, from: number, to: number); hasResult(): this is ActiveResult; handleUserEvent(tr: Transaction, type: 'input' | 'delete', conf: Required): ActiveSource; handleChange(tr: Transaction): ActiveSource; map(mapping: ChangeDesc): ActiveResult; } export declare const startCompletionEffect: import("@codemirror/state").StateEffectType; export declare const closeCompletionEffect: import("@codemirror/state").StateEffectType; export declare const setActiveEffect: import("@codemirror/state").StateEffectType; export declare const setSelectedEffect: import("@codemirror/state").StateEffectType; export declare const completionState: StateField; export {}; //# sourceMappingURL=state.d.ts.map