import { EventEmitter } from "events";
import type { CliRenderer, ColorInput } from ".";
import { OptimizedBuffer } from "./buffer";
import { Capture } from "./lib/output.capture";
export declare const capture: Capture;
export declare enum ConsolePosition {
    TOP = "top",
    BOTTOM = "bottom",
    LEFT = "left",
    RIGHT = "right"
}
export interface ConsoleOptions {
    position?: ConsolePosition;
    sizePercent?: number;
    zIndex?: number;
    colorInfo?: ColorInput;
    colorWarn?: ColorInput;
    colorError?: ColorInput;
    colorDebug?: ColorInput;
    colorDefault?: ColorInput;
    backgroundColor?: ColorInput;
    startInDebugMode?: boolean;
    title?: string;
    titleBarColor?: ColorInput;
    titleBarTextColor?: ColorInput;
    cursorColor?: ColorInput;
    maxStoredLogs?: number;
    maxDisplayLines?: number;
}
export declare class TerminalConsole extends EventEmitter {
    private isVisible;
    private isFocused;
    private renderer;
    private keyHandler;
    private options;
    private _debugModeEnabled;
    private frameBuffer;
    private consoleX;
    private consoleY;
    private consoleWidth;
    private consoleHeight;
    private scrollTopIndex;
    private isScrolledToBottom;
    private currentLineIndex;
    private _displayLines;
    private _allLogEntries;
    private _needsFrameBufferUpdate;
    private markNeedsRerender;
    private _rgbaInfo;
    private _rgbaWarn;
    private _rgbaError;
    private _rgbaDebug;
    private _rgbaDefault;
    private backgroundColor;
    private _rgbaTitleBar;
    private _rgbaTitleBarText;
    private _title;
    private _rgbaCursor;
    private _positions;
    constructor(renderer: CliRenderer, options?: ConsoleOptions);
    activate(): void;
    deactivate(): void;
    private _handleNewLog;
    private _updateConsoleDimensions;
    private handleKeyPress;
    private attachStdin;
    private detachStdin;
    private formatTimestamp;
    private formatArguments;
    resize(width: number, height: number): void;
    clear(): void;
    toggle(): void;
    focus(): void;
    blur(): void;
    show(): void;
    hide(): void;
    getCachedLogs(): string;
    private updateFrameBuffer;
    renderToBuffer(buffer: OptimizedBuffer): void;
    setDebugMode(enabled: boolean): void;
    toggleDebugMode(): void;
    private _scrollToBottom;
    private _processLogEntry;
    private _processCachedLogs;
    private saveLogsToFile;
}
