import { StateField, Facet } from '@codemirror/state';
import { DiffType } from 'api-smart-diff';
import { DiffBlockData } from '../../diff-builder/common';
import { DiffData, DiffConfig, LineMapping, BlockMapping } from '../types';
/** State for tracking diff data within the editor */
export interface DiffEditorState {
    blocks: DiffBlockData[];
    lineMap: LineMapping[];
    blockMap: BlockMapping[];
    expandedBlocks: Set<string>;
    selectedBlock: string | null;
    activeFilters: DiffType[];
    displayMode: 'inline' | 'side-by-side';
    format: 'json' | 'yaml';
    side: 'before' | 'after' | 'unified';
}
export declare const setDiffDataEffect: import('@codemirror/state').StateEffectType<DiffData>;
export declare const setSelectedBlockEffect: import('@codemirror/state').StateEffectType<string | null>;
export declare const toggleBlockExpandedEffect: import('@codemirror/state').StateEffectType<string>;
export declare const setExpandedBlocksEffect: import('@codemirror/state').StateEffectType<Set<string>>;
export declare const setFiltersEffect: import('@codemirror/state').StateEffectType<DiffType[]>;
export declare const setDisplayModeEffect: import('@codemirror/state').StateEffectType<"inline" | "side-by-side">;
export declare const setFormatEffect: import('@codemirror/state').StateEffectType<"json" | "yaml">;
export declare const setSideEffect: import('@codemirror/state').StateEffectType<"before" | "after" | "unified">;
/** State field for diff data */
export declare const diffStateField: StateField<DiffEditorState>;
/** Facet for providing diff configuration */
export declare const diffConfigFacet: Facet<Partial<DiffConfig>, DiffConfig>;
/** Get diff state from editor state */
export declare function getDiffState(state: {
    field: <T>(field: StateField<T>) => T;
}): DiffEditorState;
/** Get diff config from editor state */
export declare function getDiffConfig(state: {
    facet: <T>(facet: Facet<any, T>) => T;
}): DiffConfig;
