import { Rect, TRTCVideoFillMode } from "../trtc_define";
export declare type TRTCMediaInfo = {
    id: string;
    rect: Rect;
    isSelected: boolean;
    zOrder: number;
    origin: any;
};
declare class TRTCMediaMixingDesigner {
    private logPrefix;
    private container;
    private mixingVideoWidth;
    private mixingVideoHeight;
    private canExceedContainer;
    private eventEmitter;
    private mediaList;
    private moveAndResizeOverlay;
    private movableHandler;
    private resizableHandler;
    private selectedMediaIndex;
    private previewScale;
    private previewWidth;
    private previewHeight;
    private previewLeft;
    private previewTop;
    private readonly BOUNDARY_ADSORPTION_THRESHOLD;
    private newSelected;
    private clickedMediaSources;
    private oldSelectedIndex;
    private mousedownLeft;
    private mousedownTop;
    private eventButton;
    private resizeObserver;
    private relativeWorkingArea;
    private absoluteWorkingArea;
    private fillMode;
    private highlightColor;
    constructor(options: {
        view: HTMLElement;
        width: number;
        height: number;
        canExceedContainer: boolean;
        highlightColor: number;
    });
    updateOptions(options: {
        width: number;
        height: number;
    }): void;
    setWorkingArea(relative: Rect | null | undefined, fillMode?: TRTCVideoFillMode): void;
    addMedia(media: TRTCMediaInfo): void;
    removeMedia(media: TRTCMediaInfo): void;
    updateMedia(media: TRTCMediaInfo): void;
    removeAllMedia(): void;
    setHighlightColor(color: number): void;
    private transferColorNumberToString;
    on(event: string, func: (...args: any[]) => void): void;
    off(event: string, func: (...args: any[]) => void): void;
    destroy(): void;
    private initMediaMovable;
    private initMediaResizable;
    private initContainerMouseEventHander;
    private initContainerResizeObserver;
    private onPreviewAreaResize;
    private updateWorkingArea;
    private updatePreviewProperty;
    private updateOverlay;
    private onMove;
    private doAdsorption;
    private onResize;
    private emitOnSelect;
    private onContainerMousedown;
    private onContainerMousemove;
    private onContainerMouseup;
    private onRightButtonClicked;
}
export default TRTCMediaMixingDesigner;
