import { Widget, Message } from '@theia/core/lib/browser';
import { BaseWidget } from '@theia/core/lib/browser/widgets/widget';
import { TerminalThemeService } from '@theia/terminal/lib/browser/terminal-theme-service';
import { TerminalPreferences } from '@theia/terminal/lib/browser/terminal-preferences';
import { StructuredMessage } from '../fxdk-data-service';
import { Deferred } from '@theia/core/lib/common/promise-util';
import { FixedLengthBuffer } from '../utils/fixed-length-buffer';
export declare const SERVER_TERMINAL_WIDGET_ID = "fxdk-server-terminal";
export declare abstract class BaseConsole extends BaseWidget {
    protected readonly themeService: TerminalThemeService;
    protected readonly preferences: TerminalPreferences;
    protected logNode: HTMLDivElement;
    protected outputNode: HTMLDivElement;
    protected outputStructuredNode: HTMLDivElement;
    protected inputNode: HTMLInputElement;
    protected scrollNodeDeferred: Deferred<unknown>;
    protected removeNodeQueue: HTMLElement[];
    protected appendNodeQueue: HTMLElement[];
    protected nodesBuffer: FixedLengthBuffer<HTMLElement>;
    protected raf: number | null;
    protected abstract setup(): any;
    protected init(): void;
    protected receiveStructuredMessage({ channel, message }: StructuredMessage): void;
    protected performRafActions(): void;
    protected getScrollContainer(): Promise<HTMLDivElement>;
    protected abstract handleCommand(command: string): any;
    protected createInputNode(): HTMLInputElement;
    protected updateCssVar(preferenceId: string): void;
    protected populateCssVars(): void;
    protected setBufferedOutput(output: string): void;
    protected clear(): void;
    protected onActivateRequest(msg: Message): void;
    protected onAfterShow(msg: Message): void;
    protected onAfterAttach(msg: Message): void;
    protected onBeforeDetach(msg: Message): void;
    protected onResize(msg: Widget.ResizeMessage): void;
    protected consoleInitialized: boolean;
    protected abstract initilizeConsole(): any;
    protected open(): void;
    protected needsResize: boolean;
    protected onUpdateRequest(msg: Message): void;
    protected scrollOverride: boolean;
    private updateScroll;
    private setupEventListeners;
}
//# sourceMappingURL=base-console.d.ts.map