import { logger } from "./logger.js"; export interface Padding { top?: number; bottom?: number; left?: number; right?: number; } export interface ComponentRenderResult { lines: string[]; changed: boolean; } export interface ContainerRenderResult extends ComponentRenderResult { keepLines: number; } export interface Component { render(width: number): ComponentRenderResult; handleInput?(keyData: string): void; } export declare class Container { protected children: Element[]; protected lines: string[]; protected parentTui: TUI | undefined; constructor(parentTui?: TUI | undefined); setParentTui(tui: TUI | undefined): void; addChild(component: Element): void; removeChild(component: Element): void; render(width: number): ContainerRenderResult; getChild(index: number): Element | undefined; getChildCount(): number; clear(): void; cleanupSentinels(): void; } type Element = Component | Container; export declare class TUI extends Container { private focusedComponent; private needsRender; private wasRaw; private totalLines; private isFirstRender; private isStarted; constructor(); configureLogging(config: Parameters[0]): void; addChild(component: Element): void; removeChild(component: Element): void; setFocus(component: Component): void; private findComponent; private findInContainer; requestRender(): void; start(): void; stop(): void; private renderToScreen; private handleResize; private handleKeypress; } export {}; //# sourceMappingURL=tui.d.ts.map