import { NgZone } from '@angular/core'; import { Tasks } from '../../../../../tasks/Tasks'; import { Parser } from '../../../../../term-strings/parse/parser/Parser'; import { Point, Rect } from '../../core'; import { TermElement } from '../../core/dom/Element'; import { ElementPool } from './element-pool'; import * as i0 from "@angular/core"; export declare class TermScreen extends TermElement { terminal: import("../../../../terminals/Terminal").Terminal; logger: import("../../../../logger").Logger; elementPool: ElementPool; ngZone: NgZone; tasks: Tasks; /** We keep track of whether the screen is fully setup or not (has stdin/stdout) */ ready: boolean; /** Our subscription to the input events */ subscription: any; /** A timer used to trigger layout / clipping / render updates after a node becomes dirty */ updateTimer: any; trackScreenSize: boolean; mouseOverElement: TermElement | null; mouseEnterElements: TermElement[]; caret: Point; parser: Parser; decoder: TextDecoder; size: import("@angular/core").WritableSignal<{ width: number; height: number; }>; constructor(); requestUpdates(): void; triggerUpdates({ maxDepth }?: { maxDepth?: number; }): void; attachScreen(trackOutputSize?: boolean, throttleMouseMoveEvents?: number): void; releaseScreen(): void; clearScreen(): void; exit(): void; dispatchMouseOverEvents(e: any): void; dispatchMouseEnterEvents(e: any): void; getElementAt(position: any): TermElement; renderScreen(): void; poolNode(node: TermElement): void; queueDirtyRect(dirtyRect?: Rect, checkIntersectionFrom?: number): void; renderScreenImpl(dirtyRects?: Rect[]): void; renderToString(dirtyRects?: Rect[]): string; writeToTerminal(text: string): void; handleException(exception: any): void; handleExit(): void; handleInput(input: Input): void; private dirtyStyleNodes; queueDirtyStyle(element: TermElement): boolean; computeStyles(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } type DataInput = { type: 'data'; buffer: any; }; type MouseInput = { type: 'mouse'; name: string; start: any; end: any; x: any; y: any; }; type KeyInput = { type: 'key'; name: string; alt: boolean; ctrl: boolean; meta: boolean; shift: boolean; }; type RawInput = { type: 'raw'; buffer: Uint8Array; }; export type Input = KeyInput | MouseInput | DataInput | RawInput; export {};