import { ContentView } from "./contentview"; import { Viewport, ViewportState } from "./viewport"; import { Text } from "../../doc/src"; import { DOMObserver } from "./domobserver"; import { EditorState, EditorSelection, Transaction, ChangedRange } from "../../state/src"; import { HeightMap, HeightOracle, LineHeight } from "./heightmap"; import { DecorationSet } from "./decoration"; declare type A = ReadonlyArray; export declare class DocView extends ContentView { private callbacks; children: ContentView[]; visiblePart: Viewport; viewports: Viewport[]; publicViewport: EditorViewport; text: Text; decorations: A; selection: EditorSelection; selectionDirty: any; observer: DOMObserver; viewportState: ViewportState; heightMap: HeightMap; heightOracle: HeightOracle; computingViewport: boolean; layoutCheckScheduled: number; scrollIntoView: number; paddingTop: number; paddingBottom: number; dom: HTMLElement; readonly length: number; readonly childGap: number; constructor(dom: HTMLElement, callbacks: { onDOMChange: (from: number, to: number, typeOver: boolean) => boolean; onUpdateState: (prevState: EditorState, transactions: Transaction[]) => void; onUpdateDOM: () => void; onUpdateViewport: () => void; getDecorations: () => DecorationSet[]; }); update(state: EditorState, prevState?: EditorState | null, transactions?: Transaction[], scrollIntoView?: number): void; private updateInner; private updatePart; private updatePartRange; updateSelection(takeFocus?: boolean): void; heightAt(pos: number, bias: 1 | -1): number; lineAtHeight(height: number): LineHeight; computeViewport(contentChanges: A, prevState: EditorState | null, transactions: Transaction[] | null, bias: number, scrollIntoView: number): { viewport: Viewport; contentChanges: A; }; computeViewportInner(contentChanges: A, prevState: EditorState | null, transactions: Transaction[] | null, bias: number, scrollIntoView: number): { viewport: Viewport; contentChanges: A; }; focus(): void; cancelLayoutCheck(): void; forceLayout(): void; checkLayout(forceFull?: boolean): void; scrollPosIntoView(pos: number): void; nearest(dom: Node): ContentView | null; posFromDOM(node: Node, offset: number): number; domFromPos(pos: number): { node: Node; offset: number; } | null; measureVisibleLineHeights(): any[]; measureVerticalPadding(): void; measureTextSize(): { lineHeight: number; charWidth: number; }; destroy(): void; clearSelectionDirty(): void; setSelectionDirty(): void; } export declare class EditorViewport { private docView; _from: number; _to: number; /** @internal */ constructor(docView: DocView, _from: number, _to: number); readonly from: number; readonly to: number; forEachLine(f: (height: LineHeight) => void): void; } export {};