/**
 * A CodeMirror extension that provides SQL-aware autocomplete suggestions.
 * – Triggers completion after typing SQL keywords like SELECT, FROM, JOIN, etc.
 * – Offers column names based on the current query context or table aliases.
 * – Allows you to inject a custom columnsGetter to lazy load columns.
 *
 * Usage:
 *   import { sql } from "./customSql";
 *   import { sqlContextComplete, sqlContextCompletionSource } from "./sqlContextComplete";
 *
 *   // Register the extensions
 *   const extensions = [
 *    customSql(undefined, sqlContextCompletionSource), // Must have sql() extension from customSql.ts
 *    sqlContextComplete(),
 *   ]
 */
import { CompletionContext, CompletionResult } from "@codemirror/autocomplete";
import { Extension } from "@codemirror/state";
import { EditorView } from "@codemirror/view";
import { Entity } from "lib/components/types";
type ColumnsGetter = (entity: Entity) => string[] | Promise<string[]>;
declare function applyColumnsGetter(view: EditorView, columnsGetter: ColumnsGetter): void;
declare function sqlContextComplete(): Extension;
/**
 * Handle autocomplete context and provide column completions
 */
declare function sqlCompletionSource(context: CompletionContext): Promise<CompletionResult>;
export { ColumnsGetter, applyColumnsGetter, sqlContextComplete, sqlCompletionSource, };
