@lanonasis/cli
Version:
Professional CLI for LanOnasis Memory as a Service (MaaS) with MCP support, seamless inline editing, and enterprise-grade security
76 lines (75 loc) • 2.08 kB
TypeScript
/**
* Text Input Handler Implementation
*
* Provides seamless multi-line text input without external editors
* Implementation of the TextInputHandler interface.
*/
import { TextInputHandler, KeyEvent, InputOptions, InputSession } from '../interfaces/TextInputHandler.js';
/**
* TextInputHandlerImpl provides seamless multi-line text input without external editors
*
* This implementation uses process.stdin.setRawMode(true) to capture individual keystrokes
* and handles special characters manually to provide a smooth editing experience.
*/
export declare class TextInputHandlerImpl implements TextInputHandler {
private currentSession;
private isRawModeEnabled;
private originalStdinMode;
/**
* Collect multi-line text input from the user
*/
collectMultilineInput(prompt: string, options?: InputOptions): Promise<string>;
/**
* Enable raw mode for direct keystroke capture
*/
enableRawMode(): void;
/**
* Disable raw mode and return to normal terminal behavior
*/
disableRawMode(): void;
/**
* Handle special keyboard events
*/
handleSpecialKeys(key: KeyEvent): boolean;
/**
* Display the input prompt with current content
*/
displayInputPrompt(content: string): void;
/**
* Get the current input session
*/
getCurrentSession(): InputSession | null;
/**
* Cancel the current input session
*/
cancelInput(): void;
/**
* Parse raw key event from buffer
*/
private parseKeyEvent;
private resumeStdinIfSupported;
/**
* Check if a key event matches a key pattern
*/
private matchesKey;
/**
* Add a character to the current input
*/
private addCharacterToInput;
/**
* Add a new line to the input
*/
private addNewLine;
/**
* Handle backspace key
*/
private handleBackspace;
/**
* Handle arrow key navigation
*/
private handleArrowKey;
/**
* Get the current content as a string
*/
private getCurrentContent;
}