import type EventEmitter2 from "eventemitter2";
import { ViewId } from "../../collector";
import { BaseApplianceManager } from "../../plugin/baseApplianceManager";
import type { BaseSubWorkModuleProps } from "../../plugin/types";
import React from 'react';
import { ICameraOpt } from '../../core';
export interface MiniMapsState {
    contianer: HTMLElement;
    miniMapCanvas: React.RefObject<HTMLCanvasElement>;
    miniMapCamera: ICameraOpt;
    viewCamera: ICameraOpt;
}
export interface MiniMapManager {
    getMiniMapCamera(viewId: string): Promise<ICameraOpt | undefined>;
    createMiniMap(viewId: string, contianer: HTMLElement, miniMapCamera: ICameraOpt): Promise<boolean>;
    updateViewCamera(viewId: string, viewCamera: ICameraOpt): void;
    updateMiniMapCamera(viewId: string, miniMapCamera: ICameraOpt): void;
}
export declare class MiniMapManagerImpl implements MiniMapManager {
    readonly internalMsgEmitter: EventEmitter2;
    readonly control: BaseApplianceManager;
    readonly maps: Map<ViewId, MiniMapsState>;
    private showId?;
    private color;
    private timer?;
    constructor(props: BaseSubWorkModuleProps);
    get listener(): EventEmitter2;
    get activeViewId(): string | undefined;
    get highlightColor(): string;
    setHighlightColor(color: string): void;
    createMiniMap(viewId: string, contianer: HTMLElement, miniMapCamera: ICameraOpt): Promise<boolean>;
    getMiniMapCamera(viewId: string): Promise<ICameraOpt | undefined>;
    getMiniMapCanvas(viewId: string): HTMLCanvasElement | null;
    updateViewCamera(viewId: string, viewCamera: ICameraOpt): void;
    updateMiniMapCamera: import("lodash").DebouncedFunc<(viewId: string) => Promise<void>>;
    destroyMiniMap(viewId?: string): void;
}
