import { TRTCStreamLayout, TRTCStreamLayoutMode } from "../types";
import { ITRTCStreamLayoutManager, INativeStreamLayoutManager, TRTCStreamLayoutContext } from "./types";
declare class BaseStreamLayoutManager implements ITRTCStreamLayoutManager {
    protected logPrefix: string;
    protected nativeStreamLayoutManager: INativeStreamLayoutManager;
    protected layout: TRTCStreamLayout;
    protected context: TRTCStreamLayoutContext | null;
    protected container: HTMLElement | null;
    protected displayArea: {
        left: number;
        top: number;
        right: number;
        bottom: number;
        width: number;
        height: number;
    };
    protected resizeObserver: ResizeObserver | null;
    constructor(nativeStreamLayoutManager: INativeStreamLayoutManager, context: TRTCStreamLayoutContext);
    setLayout(layout: TRTCStreamLayout): void;
    getLayoutMode(): TRTCStreamLayoutMode;
    updateOptions(options: {
        width: number;
        height: number;
    }): void;
    destroy(): void;
    protected refreshLayout(): void;
    private onResize;
    private setResizeObserver;
    private updateDisplayArea;
    private onDevicePixelRatioChange;
}
export default BaseStreamLayoutManager;
