import type { Module } from "@term-ui/core/node"; import type { ReadStream } from "@term-ui/shared/types"; import type { WriteStream } from "@term-ui/shared/types"; import { Element } from "./Element"; import { type InputEvent, InputManager } from "./InputManager"; import { Renderer } from "./Renderer"; import { Selection } from "./Selection"; import { TextElement } from "./TextElement"; import { Tree } from "./Tree"; import type { DOMEventByType, EventTarget, WheelEvent } from "./types"; import type { DOMEvent, DocumentOptions, MouseEvent, RenderingSize, Size } from "./types"; export declare class Document { module: Module; tree: Tree; root: Element; viewportSize: Size; renderingSize: RenderingSize; writeStream: WriteStream; readStream: ReadStream; renderer: Renderer; inputManager?: InputManager; terminal: { supportsKittyKeyboardProtocol: boolean; kittyKeyboardProtocolStatus: number; }; reportLeaksOnExit: boolean; clearScreenBeforePaint: boolean; enableInputs: boolean; exitOnCtrlC: boolean; enableAlternateScreen: boolean; selection: Selection | null; listeners: Map void>>; private nodes; private state; private cleanups; private onPaintRequest; private paintRequested; constructor(module: Module, { writeStream, readStream, size, clearScreenBeforePaint, reportLeaksOnExit, enableInputs, exitOnCtrlC, enableAlternateScreen, onPaintRequest, wrapInputDispatch, }?: Partial); private pushSequence; private pushCleanup; private wrapInputDispatch?; private onInput; private initInputs; getElement: (id: number) => TextElement | Element | undefined; getOrAddElement: (id: number) => TextElement | Element; addElement: (element: Element | TextElement) => void; removeElement: (element: Element | TextElement) => void; private cleanup; private onResize; computeLayout: () => void; paint: () => void; private restoreCursor; render: () => void; dispose: () => void; [Symbol.dispose]: () => void; createElement: (tag: "view" | "text", style?: string) => Element; createTextNode: (text: string) => TextElement; getElementById: (id: string) => Element | TextElement | null; requestPaint: () => void; createSelection: (start: { node: number; offset: number; }, end?: { node: number; offset: number; }) => Selection; removeSelection: () => void; caretPositionFromPoint: (x: number, y: number) => { node: number; offset: number; } | null; private emitMouseEvents; private scrollingElementTimeout; private setScrollingElement; private getScrollContainer; createMouseEvent: (input: Extract, initialTarget: EventTarget) => MouseEvent | WheelEvent; private emitKeyEvents; emitEvent: (event: DOMEvent) => void; private handleDefaultKeyBehavior; /** After keyboard-driven selection changes, scroll ancestors the minimal * amount so the caret is visible (innermost first). Not applied to mouse * placement: the click already happened at a visible point. */ scrollCaretIntoView: () => void; /** The scroll container PgUp/PgDn acts on: nearest scrollable ancestor * of the selection anchor, else the deepest hovered scrollable. */ private findActiveScrollContainer; private handleDefaultMouseBehavior; addEventListener: (event: K, listener: (event: DOMEventByType) => void) => void; removeEventListener: (event: K, listener: (event: Extract) => void) => void; } //# sourceMappingURL=Document.d.ts.map