import { Transaction, StateField, EditorState, ChangeDesc } from "@codemirror/next/state"; import { Tooltip } from "@codemirror/next/tooltip"; import { Option, CompletionSource, CompletionResult } from "./completion"; import { CompletionConfig } from "./config"; declare class CompletionDialog { readonly options: readonly Option[]; readonly attrs: { [name: string]: string; }; readonly tooltip: readonly [Tooltip]; readonly timestamp: number; readonly selected: number; constructor(options: readonly Option[], attrs: { [name: string]: string; }, tooltip: readonly [Tooltip], timestamp: number, selected: number); setSelected(selected: number, id: string): CompletionDialog; static build(active: readonly ActiveSource[], state: EditorState, id: string, prev: CompletionDialog | null): 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(): readonly Tooltip[]; get attrs(): { [name: string]: string; }; } export declare const enum State { Inactive = 0, Pending = 1, Result = 2 } export declare class ActiveSource { readonly source: CompletionSource; readonly state: State; readonly explicit: boolean; constructor(source: CompletionSource, state: State, explicit: boolean); hasResult(): this is ActiveResult; update(tr: Transaction, conf: Required): ActiveSource; handleUserEvent(_tr: Transaction, type: "input" | "delete", conf: Required): ActiveSource; handleChange(tr: Transaction): ActiveSource; } export declare class ActiveResult extends ActiveSource { readonly result: CompletionResult; readonly from: number; readonly to: number; readonly span: RegExp | null; constructor(source: CompletionSource, explicit: boolean, result: CompletionResult, from: number, to: number, span: RegExp | null); 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("../../state/src").StateEffectType; export declare const closeCompletionEffect: import("../../state/src").StateEffectType; export declare const setActiveEffect: import("../../state/src").StateEffectType; export declare const setSelectedEffect: import("../../state/src").StateEffectType; export declare const completionState: StateField; export {}; //# sourceMappingURL=state.d.ts.map