import type { InputEditor } from "../../input-editor.js"; import type { Theme } from "../../theme.js"; import type { EditorLayout, Entry, ExtensionWidgetRegistration, ExtensionWidgetTheme, SubagentsWidgetState, TodoDetails, WidgetTuiHandle } from "../types.js"; export type EditorLayoutRendererHost = { readonly theme: Theme; readonly inputEditor: InputEditor; readonly extensionWidgets: ReadonlyMap; readonly todoDetails: TodoDetails | undefined; readonly todoPanelExpanded: boolean; readonly subagentsPanelExpanded: boolean; readonly subagentsWidgetState: SubagentsWidgetState | undefined; readonly voicePartialText: string | undefined; readonly autocompleteSuggestion: string | undefined; readonly queuedMessageWidgetEntries: readonly Extract[]; renderExtensionInputComponent(width: number): string[] | undefined; extensionInputUsesEditor(): boolean; widgetTuiHandle(): WidgetTuiHandle; createExtensionTheme(): ExtensionWidgetTheme; suppressExtensionWidget(key: string): void; }; export declare class EditorLayoutRenderer { private readonly host; constructor(host: EditorLayoutRendererHost); computeLayout(width: number, rows: number): EditorLayout; private renderWidgetRegistration; private renderWidgetComponent; private renderAboveEditorEntities; private renderQueuedMessageWidgets; private renderVoicePartial; private renderExtensionWidgets; private limitEntityLines; private renderInput; private limitExtensionInputLines; }