import { FcrBoardToolType } from '../whiteboard-control/enums';
import { Color, FcrBoardMainWindow, FcrBoardMainWindowObserver, FcrBoardPageInfo } from '../whiteboard-control/types';
import { Whiteboard } from '@netless/forge-whiteboard';
import { type AgoraRteScene } from '../../imports';
import { FcrSharedCache } from '../shared-cache';
import { Room } from '@netless/forge-room';
import { FcrSize } from '../stream-control/type';
export declare class FcrBoardMainWindowImpl implements FcrBoardMainWindow {
    protected logger: import("agora-foundation/lib/logger").Logger;
    private _whiteboard;
    private _observable;
    private _boardView;
    private _currentPage;
    private _background;
    private _roomCache;
    private _scene;
    private _boardRoom;
    constructor(whiteboard: Whiteboard, scene: AgoraRteScene, sharedCache: FcrSharedCache, boardRoom: Room);
    addPage(): Promise<void>;
    removePage(): Promise<void>;
    undo(): Promise<void>;
    redo(): Promise<void>;
    clean(): Promise<void>;
    getSnapshotImage(): Promise<ImageData>;
    setBackgroundColor(color: string): Promise<void>;
    getPageInfo(): FcrBoardPageInfo;
    prevPage(): Promise<void>;
    nextPage(): Promise<void>;
    setToolType(type: FcrBoardToolType): Promise<void>;
    setStrokeWidth(strokeWidth: number): Promise<void>;
    setStrokeColor(color: Color): Promise<void>;
    setTextColor(color: Color): Promise<void>;
    setTextSize(textSize: number): Promise<void>;
    insertImage(resourceUrl: string, x: number, y: number, width: number, height: number): Promise<void>;
    getContentView(): HTMLElement;
    setContainerSizeRatio(ratio: number): Promise<void>;
    setBoardTransparent(isTransparent: boolean): Promise<void>;
    updateWindowSize(size: FcrSize): void;
    setAutoCancelDraw(enable: boolean): void;
    addObserver(observer: FcrBoardMainWindowObserver): void;
    removeObserver(observer: FcrBoardMainWindowObserver): void;
    private _terminalApp;
    private _addWindowManagerEventListeners;
    private _isBoardWritePermission;
    private _handleApplicationLaunch;
    private _handleApplicationTerminal;
    private _addLogObserver;
}
