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<LineMapping[]>;
/** Effect to set which side this editor represents */
export declare const setEditorSideEffect: import('@codemirror/state').StateEffectType<"before" | "after" | "unified">;
/** Effect to set word diff mode (affects how modified lines are displayed) */
export declare const setWordDiffModeEffect: import('@codemirror/state').StateEffectType<"none" | "word" | "char">;
/** State field to track line mappings */
export declare const lineMappingsField: StateField<{
    mappings: LineMapping[];
    side: "before" | "after" | "unified";
    wordDiffMode: "word" | "char" | "none";
}>;
/** 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', wordDiffMode?: 'word' | 'char' | 'none', showClassification?: boolean): Extension;
/** Create diff marker gutter extension - should be added after fold gutter */
export declare function createDiffMarkerGutter(mappings: LineMapping[], side: 'before' | 'after' | 'unified', wordDiffMode?: 'word' | 'char' | 'none'): Extension;
/** Create aligned decorations extension */
export declare function alignedDecorations(): Extension;
export { buildAlignedDecorations, alignedDecorationsPlugin, isSpacerLine, LINE_HEIGHT_PX };
