/**
 * Vim Mode - AGI CLI Style
 *
 * Vim-style editing support for the terminal input.
 * Toggle with /vim command or Ctrl+[ to escape.
 *
 * Supported modes:
 * - Normal: Navigation and text manipulation
 * - Insert: Text input mode
 * - Visual: Selection mode (basic)
 *
 * Basic Vim commands:
 * - h/j/k/l: Left/Down/Up/Right
 * - w/b: Word forward/backward
 * - 0/$: Line start/end
 * - i/a: Insert before/after cursor
 * - I/A: Insert at line start/end
 * - o/O: Open line below/above
 * - x: Delete character
 * - dd: Delete line
 * - yy: Yank line
 * - p: Paste
 * - u: Undo
 * - Escape: Exit to normal mode
 */
export type VimMode = 'normal' | 'insert' | 'visual';
export interface VimState {
    mode: VimMode;
    register: string;
    count: number;
    pendingCommand: string;
    lastCommand: string;
    marks: Map<string, number>;
}
export interface VimKeyResult {
    handled: boolean;
    newMode?: VimMode;
    cursorDelta?: number;
    textChange?: {
        type: 'insert' | 'delete' | 'replace';
        text?: string;
        start?: number;
        end?: number;
    };
    action?: 'yank' | 'paste' | 'undo';
}
/**
 * Create initial vim state
 */
export declare function createVimState(): VimState;
export declare function isVimEnabled(): boolean;
export declare function setVimEnabled(enabled: boolean): void;
export declare function toggleVimMode(): boolean;
/**
 * Get mode indicator for display
 */
export declare function getVimModeIndicator(state: VimState): string;
/**
 * Process a key in vim mode
 */
export declare function processVimKey(key: string, state: VimState, buffer: string, cursor: number): VimKeyResult;
/**
 * Format vim help for display
 */
export declare function formatVimHelp(): string;
//# sourceMappingURL=vimMode.d.ts.map