import { type AutocompleteProvider, type TUI } from "@earendil-works/pi-tui"; export interface TaskEditorTheme { border: (s: string) => string; dim: (s: string) => string; accent: (s: string) => string; } export declare class TaskEditor { private ed; private theme; private placeholder; constructor(tui: TUI, theme: TaskEditorTheme, placeholder: string); get focused(): boolean; set focused(v: boolean); /** The task as typed, a folded paste expanded. */ getValue(): string; setValue(text: string): void; handleInput(data: string): void; /** M48: the hint shown while the box is empty (a peek's says what Enter does for that session). */ setPlaceholder(text: string): void; /** M48: pi's own completion menu (`/` commands, `@` paths), as in pi's prompt. */ setAutocomplete(provider: AutocompleteProvider): void; /** The completion menu is open: ↑↓, Tab, Enter and Esc are its. */ autocompleteOpen(): boolean; /** Replace the last `count` characters of the text (an `@dir` being completed); the cursor goes to the end. */ replaceTail(count: number, text: string): void; /** Between a bracketed paste's start and end. */ inPaste(): boolean; /** More than one line: ↑↓ move within the text, not between rows. */ multiline(): boolean; /** ↑ on the first line or ↓ on the last leaves the text (to the rows). */ atEdge(dir: "up" | "down"): boolean; render(width: number): string[]; }