import { Extension, RangeSet } from '@codemirror/state';
import { EditorView, GutterMarker } from '@codemirror/view';
import { DiffType } from 'api-smart-diff';
import { DiffBlockData } from '../../diff-builder/common';
import { DiffData } from '../types';
/** Gutter marker for diff changes */
declare class DiffGutterMarker extends GutterMarker {
    readonly diffType: DiffType;
    readonly action: 'add' | 'remove' | 'replace' | 'rename';
    constructor(diffType: DiffType, action: 'add' | 'remove' | 'replace' | 'rename');
    toDOM(): HTMLDivElement;
    eq(other: DiffGutterMarker): boolean;
}
/** Build gutter markers from diff blocks */
declare function buildGutterMarkers(view: EditorView, blocks: DiffBlockData[], side: 'before' | 'after' | 'unified', filters: DiffType[]): RangeSet<GutterMarker>;
/** Create diff gutter extension */
export declare function diffGutter(data: DiffData): Extension;
/** Theme styles for diff gutter */
export declare const diffGutterTheme: Extension;
export { DiffGutterMarker, buildGutterMarkers };
