import { FcrBoardToolType } from '../enum';
import { FcrBoardMainWindow, FcrBoardMainWindowObserver } from '../type';
import { Whiteboard } from '@netless/forge-whiteboard';
import { Room } from '@netless/forge-room';
import { FcrSize } from '../../stream-control/type';
import { FcrBoardPageInfo, FcrColor } from '../../whiteboard-control/type';
import { FcrReturnCode } from '../../../type';
import { FcrCoreServiceApi } from '../../../service/api';
export declare class FcrBoardMainWindowImpl implements FcrBoardMainWindow {
    private _roomId;
    private _userId;
    private _api?;
    protected logger: import("agora-foundation/lib/logger/type").Logger;
    private _whiteboard;
    private _observable;
    private _boardView;
    private _boardRoom;
    private _currentPage;
    private _background;
    private _isAutoCancelEnabled;
    private _isWritable;
    constructor(whiteboard: Whiteboard, boardRoom: Room, appId: string, _roomId: string, _userId: string, _api?: FcrCoreServiceApi | undefined);
    internalSetWritable(isWritable: boolean): void;
    setWritable(isWritable: boolean): Promise<number>;
    addPage(): Promise<FcrReturnCode>;
    removePage(): Promise<FcrReturnCode>;
    undo(): Promise<FcrReturnCode>;
    redo(): Promise<FcrReturnCode>;
    clean(): Promise<FcrReturnCode>;
    getSnapshotImage(): Promise<ImageData>;
    setBackgroundColor(color: string): Promise<FcrReturnCode>;
    getPageInfo(): FcrBoardPageInfo;
    prevPage(): Promise<FcrReturnCode>;
    nextPage(): Promise<FcrReturnCode>;
    setToolType(type: FcrBoardToolType): Promise<FcrReturnCode>;
    setStrokeWidth(strokeWidth: number): Promise<FcrReturnCode>;
    setStrokeColor(color: FcrColor | string): Promise<FcrReturnCode>;
    setTextColor(color: FcrColor): Promise<FcrReturnCode>;
    setTextSize(textSize: number): Promise<FcrReturnCode>;
    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): FcrReturnCode;
    setAutoCancelDraw(enable: boolean): FcrReturnCode;
    getWritable(): boolean;
    addObserver(observer: FcrBoardMainWindowObserver): void;
    removeObserver(observer: FcrBoardMainWindowObserver): void;
    private _addWindowManagerEventListeners;
    private _handleApplicationLaunch;
    private _handleApplicationTerminal;
    private _setBoardViewStyle;
    private _enableAutoCancel;
    private _addLogObserver;
}
