import type { CompletionContext } from "@codemirror/autocomplete";
import type { CardId, DatabaseId } from "../../../../../metabase-types/api";
type SchemaCompletionOptions = {
    databaseId?: DatabaseId | null;
};
export declare function useSchemaCompletion({ databaseId }: SchemaCompletionOptions): (context: CompletionContext) => Promise<{
    from: number;
    to: number | undefined;
    options: {
        label: string;
        detail: string;
    }[];
    validFor(text: string): boolean;
} | null>;
export declare function useSnippetCompletion(): (context: CompletionContext) => {
    from: number;
    to: number;
    options: {
        label: string;
        apply: string;
        detail: string;
    }[];
} | null;
type CardTagCompletionOptions = {
    databaseId?: DatabaseId | null;
};
export declare function useCardTagCompletion({ databaseId }: CardTagCompletionOptions): (context: CompletionContext) => Promise<{
    from: number;
    to: number;
    options: {
        label: string;
        detail: string;
        apply: string;
    }[];
    validFor(text: string): boolean;
} | null>;
type ReferencedCardCompletionOptions = {
    referencedCardIds: CardId[];
};
export declare function useReferencedCardCompletion({ referencedCardIds, }: ReferencedCardCompletionOptions): (context: CompletionContext) => Promise<{
    from: number;
    to: number | undefined;
    validFor(text: string): boolean;
    options: {
        label: string;
        detail: string;
    }[];
} | null>;
type LocalsCompletionOptions = {
    engine?: string | null;
};
export declare function useLocalsCompletion({ engine }: LocalsCompletionOptions): (context: CompletionContext) => {
    from: number;
    to: number | undefined;
    options: {
        label: string;
        detail: string;
    }[];
} | null;
export declare function useKeywordsCompletion({ engine }: LocalsCompletionOptions): (context: CompletionContext) => {
    from: number;
    to: number | undefined;
    options: {
        label: string;
        detail: string;
    }[];
} | null;
export {};
