import { EditorView, ViewUpdate, BlockInfo } from "@codemirror/next/view"; import { Range, RangeValue, RangeSet } from "@codemirror/next/rangeset"; import { Facet, Extension } from "@codemirror/next/state"; export declare abstract class GutterMarker extends RangeValue { abstract eq(other: GutterMarker): boolean; toDOM(_view: EditorView): Node | null; at(pos: number): Range; elementClass: string; } declare type Handlers = { [event: string]: (view: EditorView, line: BlockInfo, event: any) => boolean; }; interface GutterConfig { style?: string; renderEmptyElements?: boolean; markers?: (view: EditorView) => (RangeSet | readonly RangeSet[]); lineMarker?: (view: EditorView, line: BlockInfo, otherMarkers: readonly GutterMarker[]) => GutterMarker | null; initialSpacer?: null | ((view: EditorView) => GutterMarker); updateSpacer?: null | ((spacer: GutterMarker, update: ViewUpdate) => GutterMarker); domEventHandlers?: Handlers; } export declare function gutter(config: GutterConfig): Extension; export declare function gutters(config?: { fixed?: boolean; }): Extension; interface LineNumberConfig { formatNumber?: (lineNo: number) => string; domEventHandlers?: Handlers; } export declare const lineNumberMarkers: Facet, readonly RangeSet[]>; export declare function lineNumbers(config?: LineNumberConfig): Extension; export {}; //# sourceMappingURL=index.d.ts.map