/**
 * ComparisonEngine — coordinate comparison and transfer planning logic.
 *
 * Contains the implementations for compareCoordinates, compareStrand,
 * planCoordinateTransfer, and planStrandTransfer. All functions are
 * free (not methods) — the ComparisonController facade delegates here.
 *
 * @module domain/services/controllers/ComparisonEngine
 */
import GraphDiff from '../comparison/GraphDiff.ts';
import type { CoordinateComparison, CoordinateTransferPlan } from '../../types/CoordinateComparison.ts';
import type { CompareStrandOptions, PlanStrandTransferOptions, CompareCoordinatesOptions, GraphDiffOptions, PlanCoordinateTransferOptions } from '../../capabilities/ComparisonCapability.ts';
import { type ComparisonHost, type ComparisonSelectorContext, type PatchEntry } from './ComparisonSelector.ts';
export type VisiblePatchDivergence = CoordinateComparison['visiblePatchDivergence'];
export type VisiblePatchDivergenceTarget = NonNullable<VisiblePatchDivergence['target']>;
export declare function buildPatchDivergenceImpl(leftEntries: PatchEntry[], rightEntries: PatchEntry[], targetId: string | null): VisiblePatchDivergence;
export declare function compareCoordinatesImpl(graph: ComparisonHost, selectorContext: ComparisonSelectorContext, options: CompareCoordinatesOptions): Promise<CoordinateComparison>;
export declare function diffImpl(graph: ComparisonHost, selectorContext: ComparisonSelectorContext, options: GraphDiffOptions): Promise<GraphDiff>;
export declare function compareStrandImpl(graph: ComparisonHost, selectorContext: ComparisonSelectorContext, strandId: string, options?: CompareStrandOptions): Promise<CoordinateComparison>;
export declare function planCoordinateTransferImpl(graph: ComparisonHost, selectorContext: ComparisonSelectorContext, options: PlanCoordinateTransferOptions): Promise<CoordinateTransferPlan>;
export declare function planStrandTransferImpl(graph: ComparisonHost, selectorContext: ComparisonSelectorContext, strandId: string, options?: PlanStrandTransferOptions): Promise<CoordinateTransferPlan>;
