import { type AutocompleteItem, type AutocompleteProvider, type SlashCommand } from "@pk-nerdsaver-ai/pi-tui";
import { type KeybindingsManager } from "../config/keybindings";
interface PromptActionDefinition {
    id: string;
    label: string;
    description: string;
    keywords: string[];
    execute: (prefix: string) => void;
}
interface PromptActionAutocompleteOptions {
    commands: SlashCommand[];
    basePath: string;
    keybindings: KeybindingsManager;
    copyCurrentLine: () => void;
    copyPrompt: () => void;
    undo: (prefix: string) => void;
    moveCursorToMessageEnd: () => void;
    moveCursorToMessageStart: () => void;
    moveCursorToLineStart: () => void;
    moveCursorToLineEnd: () => void;
}
export declare class PromptActionAutocompleteProvider implements AutocompleteProvider {
    #private;
    constructor(commands: SlashCommand[], basePath: string, actions: PromptActionDefinition[]);
    getSuggestions(lines: string[], cursorLine: number, cursorCol: number): Promise<{
        items: AutocompleteItem[];
        prefix: string;
    } | null>;
    applyCompletion(lines: string[], cursorLine: number, cursorCol: number, item: AutocompleteItem, prefix: string): {
        lines: string[];
        cursorLine: number;
        cursorCol: number;
        onApplied?: () => void;
    };
    getInlineHint(lines: string[], cursorLine: number, cursorCol: number): string | null;
    trySyncSlashCompletion(textBeforeCursor: string): {
        items: AutocompleteItem[];
        prefix: string;
    } | null;
    trySyncInlineReplace(textBeforeCursor: string): {
        replaceLen: number;
        insert: string;
    } | null;
}
export declare function createPromptActionAutocompleteProvider(options: PromptActionAutocompleteOptions): PromptActionAutocompleteProvider;
export {};
