import type { EditorComponent, EditorTheme, TUI } from "@earendil-works/pi-tui"; import type { ChatSessionHostState } from "./chat-session-host-state.ts"; import type { ChatSessionHostOpts, ChatSessionSubmitMode } from "./chat-session-host-types.ts"; import type { ChatTranscriptEntryLike } from "./chat-transcript.js"; export interface ChatSessionEditorCallbacks { submit: (mode: ChatSessionSubmitMode, submittedText?: string) => void | Promise; restoreQueuedMessagesToEditor: () => boolean; abortCompaction: () => void | Promise; interrupt: (options?: { restoreQueuedMessages?: boolean; }) => void | Promise; abortBash: () => void | Promise; } export declare function createChatSessionEditor(state: ChatSessionHostState, tui: TUI | undefined, keybindings: unknown, editorTheme: EditorTheme, editorFactory: ChatSessionHostOpts["editorFactory"], callbacks: ChatSessionEditorCallbacks): EditorComponent | undefined; export declare function handleChatSessionInput(state: ChatSessionHostState, data: string, callbacks: ChatSessionEditorCallbacks): boolean; export declare function setChatSessionEditorText(state: ChatSessionHostState, text: string): void; export declare function setEditorPlaceholder(editor: EditorComponent, placeholder: string | undefined): void; export declare function setEditorBorderColor(editor: EditorComponent, borderColor: (text: string) => string): void; export declare function setEditorFocused(editor: EditorComponent, focused: boolean): void; type EditorCursor = { line: number; col: number; }; export declare function chatSessionEditorAccess(state: ChatSessionHostState): { insertTextAtCursor: (text: string) => void; getText: () => string; setText: (text: string) => void; getCursor?: () => EditorCursor; }; export {}; //# sourceMappingURL=chat-session-host-editor.d.ts.map