/**
 * ComparisonController — substrate-visible coordinate and strand comparison.
 *
 * Thin facade that delegates to ComparisonEngine functions.
 * The controller is bound to a WarpRuntime host instance.
 *
 * @module domain/services/controllers/ComparisonController
 */
import { buildPatchDivergenceImpl, compareStrandImpl, planStrandTransferImpl, planCoordinateTransferImpl, compareCoordinatesImpl, diffImpl, } from "./ComparisonEngine.js";
export default class ComparisonController {
    _host;
    _selectorContext;
    constructor(deps) {
        this._host = deps.host;
        this._selectorContext = deps.selectorContext;
        Object.freeze(this);
    }
    buildPatchDivergence(leftEntries, rightEntries, targetId) {
        return buildPatchDivergenceImpl(leftEntries, rightEntries, targetId ?? null);
    }
    async compareStrand(strandId, options = {}) {
        return await compareStrandImpl(this._host, this._selectorContext, strandId, options);
    }
    async planStrandTransfer(strandId, options = {}) {
        return await planStrandTransferImpl(this._host, this._selectorContext, strandId, options);
    }
    async planCoordinateTransfer(options) {
        return await planCoordinateTransferImpl(this._host, this._selectorContext, options);
    }
    async compareCoordinates(options) {
        return await compareCoordinatesImpl(this._host, this._selectorContext, options);
    }
    async diff(options) {
        return await diffImpl(this._host, this._selectorContext, options);
    }
}
