import { Extension, StateField } from '@codemirror/state'; import { DecorationSet, EditorView, ViewPlugin, ViewUpdate } from '@codemirror/view'; import { LineMapping } from '../types'; /** Line height in pixels - must be consistent across all elements */ declare const LINE_HEIGHT_PX = 20; /** Effect to set line mappings */ export declare const setLineMappingsEffect: import('@codemirror/state').StateEffectType; /** Effect to set which side this editor represents */ export declare const setEditorSideEffect: import('@codemirror/state').StateEffectType<"before" | "after" | "unified">; /** State field to track line mappings */ export declare const lineMappingsField: StateField<{ mappings: LineMapping[]; side: "before" | "after" | "unified"; }>; /** Check if a line is a spacer based on mappings and side */ declare function isSpacerLine(lineNum: number, mappings: LineMapping[], side: "before" | "after" | "unified"): boolean; /** Build decorations based on line mappings */ declare function buildAlignedDecorations(view: EditorView): DecorationSet; /** View plugin for aligned decorations */ declare const alignedDecorationsPlugin: ViewPlugin<{ decorations: DecorationSet; update(update: ViewUpdate): void; }, undefined>; /** Theme for aligned line decorations */ export declare const alignedDecorationsTheme: Extension; /** Create line numbers extension with spacer awareness - pass mappings and side directly */ export declare function createSpacerAwareLineNumbers(mappings: LineMapping[], side: "before" | "after" | "unified"): Extension; /** Create aligned decorations extension */ export declare function alignedDecorations(): Extension; export { buildAlignedDecorations, alignedDecorationsPlugin, isSpacerLine, LINE_HEIGHT_PX };