/** * Vim-style text input for Franklin's Ink UI. * Supports normal/insert mode, motions, operators, counts. * * Normal mode: h/l/w/b/e/0/$ for movement, i/a/A/I to enter insert, x/dd/dw/D for delete * Insert mode: standard text entry, Esc to return to normal mode */ import React from 'react'; export type VimMode = 'insert' | 'normal'; interface VimInputProps { value: string; onChange: (value: string) => void; onSubmit: (value: string) => void; placeholder?: string; focus?: boolean; showMode?: boolean; onModeChange?: (mode: VimMode) => void; /** Probe the clipboard for an image and return the input-block to splice in * (or null if there's no image). Wired to the same path as PromptTextInput's * Ctrl+V fallback so vim-mode users on terminals that don't emit a * bracketed-paste event for images can still paste. */ onClipboardImage?: () => Promise; } export default function VimInput({ value, onChange, onSubmit, placeholder, focus, showMode, onModeChange, onClipboardImage, }: VimInputProps): React.JSX.Element; export {};