export interface InteractionControllerOptions {
    root: HTMLElement;
    wrapper: HTMLElement;
    videoWrapper: HTMLElement;
    video: HTMLVideoElement;
    renderCanvas: HTMLCanvasElement;
    previewCanvas: HTMLCanvasElement;
    getPlayer: () => any;
    getMediaInfo: () => {
        width?: number;
        height?: number;
    } | null;
    onZoomEnabled?: () => void;
    zoomButtonSelector?: string;
}
/**
 * 用户交互控制器。
 *
 * 第一阶段负责数码放大的完整生命周期：
 * - H.264 Video 与 H.265/WASM Canvas 的鼠标框选
 * - 放大区域预览绘制
 * - 放大框、激活样式和 RAF 的创建与释放
 */
export declare class InteractionController {
    private readonly options;
    private zoomEnabled;
    private dragging;
    private startPoint;
    private endPoint;
    private animationFrameId;
    private zoomBlock;
    constructor(options: InteractionControllerOptions);
    get zooming(): boolean;
    setZooming(enabled: boolean): void;
    toggleZoom(): void;
    resizePreview(scale: number): void;
    destroy(): void;
    private readonly handleMouseDown;
    private readonly handleMouseMove;
    private readonly handleMouseUp;
    private getSource;
    private getLocalPoint;
    private createZoomBlock;
    private updateZoomBlock;
    private removeZoomBlock;
    private startPreviewLoop;
    private stopPreviewLoop;
    private clearPreview;
    private getSourceSize;
}
