import { CompleteStrategy } from './index'; import { SyntaxNode } from '@lezer/common'; import { CompletionContext, CompletionResult } from '@codemirror/autocomplete'; import { EditorState } from '@codemirror/state'; import { Matcher } from '../types'; import { DQLClient } from '../client'; export declare enum ContextKind { Namespace = 0, DColon = 1, Index = 2, DataSource = 3, ShowFunction = 4, FieldName = 5, Custom = 6, FieldValue = 7, Function = 8, OuterFunction = 9, RollupFunc = 10, BinOp = 11, MatchOp = 12, ConnectOp = 13, Duration = 14, Offset = 15, SOffset = 16, Limit = 17, SLimit = 18, Orderby = 19, SOrderby = 20, By = 21, Number = 22, Desc = 23, Asc = 24, Having = 25 } export interface Context { kind: ContextKind; Namespace?: string; Index?: string[]; DataSource?: string[]; matcher?: Matcher; isProjectField?: boolean; projectFields?: string[]; values?: string[]; } export declare function computeStartCompletePosition(state: EditorState, node: SyntaxNode, pos: number): number; export declare function analyzeCompletion(state: EditorState, node: SyntaxNode, pos: number): Context[]; export declare class HybridComplete implements CompleteStrategy { private readonly dqlClient; constructor(dqlClient?: DQLClient); DQL(context: CompletionContext): Promise | CompletionResult | null; private autocompleteNamespace; private autocompleteIndex; private autocompleteDataSource; private autocompleteShowFuncs; private autocompleteFieldNames; private autocomplteFieldValues; }