import { EditorView } from "@codemirror/next/view"; import { EditorState } from "@codemirror/next/state"; import { ActiveResult } from "./state"; export interface Completion { label: string; detail?: string; info?: string | ((completion: Completion) => Node); apply?: string | ((view: EditorView, completion: Completion, from: number, to: number) => void); type?: string; boost?: number; } export declare class CompletionContext { readonly state: EditorState; readonly pos: number; readonly explicit: boolean; constructor(state: EditorState, pos: number, explicit: boolean); tokenBefore(types: readonly string[]): { from: number; to: number; text: string; type: import("lezer-tree").NodeType; } | null; matchBefore(expr: RegExp): { from: number; to: number; text: string; } | null; get aborted(): boolean; addEventListener(type: "abort", listener: () => void): void; } export declare function completeFromList(list: readonly (string | Completion)[]): CompletionSource; export declare function ifNotIn(nodes: readonly string[], source: CompletionSource): CompletionSource; export declare type CompletionSource = (context: CompletionContext) => CompletionResult | null | Promise; export interface CompletionResult { from: number; to?: number; options: readonly Completion[]; span?: RegExp; } export declare class Option { readonly completion: Completion; readonly source: ActiveResult; readonly match: readonly number[]; constructor(completion: Completion, source: ActiveResult, match: readonly number[]); } export declare function cur(state: EditorState): number; export declare function ensureAnchor(expr: RegExp, start: boolean): RegExp; export declare function applyCompletion(view: EditorView, option: Option): void; export declare function asSource(source: CompletionSource | readonly (string | Completion)[]): CompletionSource; //# sourceMappingURL=completion.d.ts.map