/**
 * Completion menu state management and operations.
 *
 * Manages the lifecycle of the inline completion menu:
 * filtering candidates, selection navigation, applying completions,
 * and coordinating with the terminal renderer.
 *
 * Separated from lineEditor to keep input handling and completion
 * logic as distinct concerns.
 */
import { type CompletionCandidate, type CompletionProvider } from './completionMenu.js';
/**
 * Create a completion controller bound to a line editor instance.
 */
export declare const createCompletionController: (accessors: {
    getBuffer: () => string;
    getCursorPos: () => number;
    getTermWidth: () => number;
    getTerminalColumn: (pos: number) => number;
    countRowsBelowCursor: () => number;
    getCursorRow: () => number;
}, mutators: {
    setBuffer: (value: string) => void;
    setCursorPos: (value: number) => void;
}, promptWidth: number, completionProvider?: CompletionProvider) => {
    readonly getState: () => {
        readonly candidates: readonly CompletionCandidate[];
        readonly selectedIndex: number;
    } | null;
    readonly update: () => void;
    readonly hide: () => void;
    readonly moveSelection: (delta: number) => void;
    readonly apply: () => void;
    readonly acceptSelection: () => boolean;
};
//# sourceMappingURL=completionController.d.ts.map