import { EditorState, Transaction, TransactionSpec, Extension, SelectionRange } from "@codemirror/next/state"; import { Line } from "@codemirror/next/text"; import { StyleModule, StyleSpec } from "style-mod"; import { Rect } from "./dom"; import { BlockInfo } from "./heightmap"; import { ViewUpdate, ViewPlugin, PluginField, MeasureRequest } from "./extension"; import { Attrs } from "./attributes"; import { BidiSpan, Direction } from "./bidi"; interface EditorConfig { state?: EditorState; root?: Document | ShadowRoot; dispatch?: (tr: Transaction) => void; parent?: Element; } export declare const enum UpdateState { Idle = 0, Measuring = 1, Updating = 2 } export declare class EditorView { get state(): EditorState; get viewport(): { from: number; to: number; }; get visibleRanges(): readonly { from: number; to: number; }[]; get inView(): boolean; get composing(): boolean; private _dispatch; readonly root: DocumentOrShadowRoot; readonly dom: HTMLElement; readonly scrollDOM: HTMLElement; readonly contentDOM: HTMLElement; private plugins; private editorAttrs; private contentAttrs; private styleModules; private bidiCache; constructor(config?: EditorConfig); dispatch(tr: Transaction): void; dispatch(...specs: TransactionSpec[]): void; update(transactions: readonly Transaction[]): void; setState(newState: EditorState): void; private updatePlugins; get themeClasses(): string; private updateAttrs; private mountStyles; private readMeasured; requestMeasure(request?: MeasureRequest): void; pluginField(field: PluginField): readonly T[]; plugin(plugin: ViewPlugin): T | null; blockAtHeight(height: number, editorTop?: number): BlockInfo; visualLineAtHeight(height: number, editorTop?: number): BlockInfo; viewportLines(f: (line: BlockInfo) => void, editorTop?: number): void; visualLineAt(pos: number, editorTop?: number): BlockInfo; get contentHeight(): number; moveByChar(start: SelectionRange, forward: boolean, by?: (initial: string) => (next: string) => boolean): SelectionRange; moveByGroup(start: SelectionRange, forward: boolean): SelectionRange; moveToLineBoundary(start: SelectionRange, forward: boolean, includeWrap?: boolean): SelectionRange; moveVertically(start: SelectionRange, forward: boolean, distance?: number): SelectionRange; scrollPosIntoView(pos: number): void; domAtPos(pos: number): { node: Node; offset: number; }; posAtDOM(node: Node, offset?: number): number; posAtCoords(coords: { x: number; y: number; }): number | null; coordsAtPos(pos: number, side?: -1 | 1): Rect | null; get defaultCharacterWidth(): number; get defaultLineHeight(): number; get textDirection(): Direction; get lineWrapping(): boolean; bidiSpans(line: Line): readonly BidiSpan[]; get hasFocus(): boolean; focus(): void; destroy(): void; static styleModule: import("../../state/src").Facet; static domEventHandlers(handlers: DOMEventHandlers): Extension; static inputHandler: import("../../state/src").Facet<(view: EditorView, from: number, to: number, text: string) => boolean, readonly ((view: EditorView, from: number, to: number, text: string) => boolean)[]>; static exceptionSink: import("../../state/src").Facet<(exception: any) => void, readonly ((exception: any) => void)[]>; static updateListener: import("../../state/src").Facet<(update: ViewUpdate) => void, readonly ((update: ViewUpdate) => void)[]>; static editable: import("../../state/src").Facet; static mouseSelectionStyle: import("../../state/src").Facet; static dragMovesSelection: import("../../state/src").Facet<(event: MouseEvent) => boolean, readonly ((event: MouseEvent) => boolean)[]>; static clickAddsSelectionRange: import("../../state/src").Facet<(event: MouseEvent) => boolean, readonly ((event: MouseEvent) => boolean)[]>; static decorations: import("../../state/src").Facet; static theme(spec: { [selector: string]: StyleSpec; }, options?: { dark?: boolean; }): Extension; static baseTheme(spec: { [selector: string]: StyleSpec; }): Extension; static lineWrapping: Extension; static contentAttributes: import("../../state/src").Facet; static editorAttributes: import("../../state/src").Facet; } export interface DOMEventMap extends HTMLElementEventMap { [other: string]: any; } export declare type DOMEventHandlers = { [event in keyof DOMEventMap]?: (this: This, event: DOMEventMap[event], view: EditorView) => boolean | void; }; export {}; //# sourceMappingURL=editorview.d.ts.map