import { EditorView } from '@codemirror/view';
/** Padding entry: document position and pixel height to add */
export interface HeightPadding {
    pos: number;
    height: number;
}
/** Compare two padding arrays for equality (within tolerance) */
export declare function paddingsEqual(a: HeightPadding[], b: HeightPadding[]): boolean;
/** Convert a padding map to a sorted HeightPadding array */
export declare function mapToPaddings(padMap: Map<number, number>, doc: {
    line: (n: number) => {
        to: number;
    };
    lines: number;
}): HeightPadding[];
/**
 * Sets up height synchronization between two side-by-side editors.
 *
 * For each visible line, compares the visual height in both editors.
 * If one side is taller (due to word wrapping), inserts an invisible
 * padding widget on the shorter side to equalize the height.
 *
 * Maintains a persistent padding map so that paddings computed for
 * lines that later scroll out of view are preserved. On container
 * resize, performs a full reset since word-wrap changes invalidate
 * all previously measured heights.
 *
 * @param beforeView - The before (left) editor
 * @param afterView - The after (right) editor
 * @returns Cleanup function to disconnect observers and stop syncing
 */
export declare function setupHeightSync(beforeView: EditorView, afterView: EditorView): () => void;
