import { type CliRenderer, type KeyEvent, type Renderable } from "@opentui/core"; import type { Binding, Bindings, Keymap, Layer } from "../../index.js"; declare const editBufferActions: readonly ["move-left", "move-right", "move-up", "move-down", "select-left", "select-right", "select-up", "select-down", "line-home", "line-end", "select-line-home", "select-line-end", "visual-line-home", "visual-line-end", "select-visual-line-home", "select-visual-line-end", "buffer-home", "buffer-end", "select-buffer-home", "select-buffer-end", "delete-line", "delete-to-line-end", "delete-to-line-start", "backspace", "delete", "newline", "undo", "redo", "word-forward", "word-backward", "select-word-forward", "select-word-backward", "delete-word-forward", "delete-word-backward", "select-all", "submit"]; export type EditBufferCommandName = (typeof editBufferActions)[number]; export type EditBufferFineGroup = "Cursor" | "Selection" | "Delete" | "History" | "Insert" | "Submit"; export interface EditBufferCommandOptions { category?: string; group?: string; includeFineGroup?: boolean; commandNames?: Partial>; descriptions?: Partial>; } export type ManagedTextareaLayer = Omit, "bindings" | "target" | "targetMode"> & { bindings?: Bindings; target?: never; targetMode?: never; }; /** * Returns the default textarea bindings with any overrides prepended so they * take precedence. Prefer `registerManagedTextareaLayer` unless you are * composing a custom textarea integration. */ export declare function createTextareaBindings(overrides?: readonly Binding[], options?: EditBufferCommandOptions): Binding[]; /** * Suspends a focused `TextareaRenderable`'s own key handling so keymap * bindings can take over, restoring the previous suspend state on cleanup or * focus change. Reference-counted per `Keymap`; prefer * `registerManagedTextareaLayer` unless you need this separately. */ export declare function registerTextareaMappingSuspension(keymap: Keymap, renderer: CliRenderer): () => void; /** * Registers the standard edit-buffer commands against * `renderer.currentFocusedEditor`. Reference-counted per `Keymap`; prefer * `registerManagedTextareaLayer` unless you need the commands without the * default bindings or textarea suspension. */ export declare function registerEditBufferCommands(keymap: Keymap, renderer: CliRenderer, options?: EditBufferCommandOptions): () => void; /** * High-level global textarea integration: registers the edit-buffer commands, * suspends the textarea's built-in key handling while focused, and installs * the layer with default bindings plus overrides. Safe to combine with the * lower-level helpers because they are reference-counted. */ export declare function registerManagedTextareaLayer(keymap: Keymap, renderer: CliRenderer, layer: ManagedTextareaLayer, options?: EditBufferCommandOptions): () => void; export {};