import type { CompletionItem, WordAtCursor } from "../types.js";
import type { Token } from "../../../expressions/lexer/types.js";
export declare function useCompletions(completionProvider?: (tokens: Token[], cursorPosition: number) => CompletionItem[] | Promise<CompletionItem[]>): {
    selectedItem: CompletionItem | null;
    fetchCompletions: (tokens: Token[], cursorPosition: number, word: WordAtCursor) => Promise<void>;
    updateFilter: (prefix: string) => void;
    navigate: (direction: "up" | "down") => void;
    dismiss: () => void;
    items: CompletionItem[];
    filteredItems: CompletionItem[];
    selectedIndex: number;
    isOpen: boolean;
    isLoading: boolean;
};
