import { BaseDxfCompareHelper } from "./BaseDxfCompareHelper";
import { DxfCompareConfig, Model2dConfig, Viewer2dConfig } from "../../core/Configs";
import { Viewer2d } from "../../core/viewers/Viewer2d";
/**
 * Dxf compare helper with two viewports.
 * @example
 * ``` html
 * <div id="app">
 *     <div id="myCanvas1" style="width: 50%; height: 100%; display: inline-block;"></div>
 *     <div id="myCanvas2" style="width: 50%; height: 100%; display: inline-block; padding-left: 1px;"></div>
 * </div>
 * ```
 * ``` typescript
 * const viewerCfg1 = { containerId: "myCanvas1" };
 * const viewerCfg2 = { containerId: "myCanvas2" };
 * const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" };
 * const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" };
 * const compareCfg = {
 *     addedColor: new THREE.Color(0, 1, 0), // green
 *     removedColor: new THREE.Color(1, 0, 0), // red
 * };
 * const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"];
 *
 * const compareHelper = new DxfCompareHelper(viewerCfg1, viewerCfg2);
 * await compareHelper.setFont(fontFiles);
 * await compareHelper.compare(modelCfg1, modelCfg2, compareCfg);
 * compareHelper.enableSyncCamera(true);
 * ```
 */
export declare class DxfCompareHelper extends BaseDxfCompareHelper {
    /**
     * The second Viewer2d of DxfCompareHelper.
     */
    viewer2: Viewer2d;
    /**
     * Enables to synchronize camera position when another camera is moved.
     */
    protected syncCamera: boolean;
    constructor(viewerCfg1: Viewer2dConfig, viewerCfg2: Viewer2dConfig);
    protected initSyncCameraEvent(): void;
    /**
     * Enables or disables synchronizing the two viewers' cameras when either one moves.
     * @example
     * ```typescript
     * compareHelper.enableSyncCamera(true);
     * ```
     */
    enableSyncCamera(enable: boolean): void;
    /**
     * Compares two dxf files. Note that:
     * - It only compares model spaces.
     * - It shouldn't load anything else before and after compare.
     * @param modelCfg1 The first dxf to be compared
     * @param modelCfg2 The second dxf to be compared
     * @param onProgress loading progress
     */
    compare(modelCfg1: Model2dConfig, modelCfg2: Model2dConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise<void>;
    /**
     * Zooms both viewers to the bounding box of one compare change (with padding).
     * @param changeId Change id: positive integer starting at 1.
     * @example
     * ``` typescript
     * const changeId = 1;
     * compareHelper.zoomToChange(changeId);
     * ```
     */
    zoomToChange(changeId: number): void;
}
