import { ReactEventHandler } from 'react';
import { MemberState, Room } from 'white-web-sdk';
import { CourseWareItem, RoleTypeEnum, BoardPermission, UserInfo } from '../api/declare';
import { EduScenarioAppStore as EduScenarioAppStore } from './index';
import { BoardClient } from '../utilities/board-client';
import { ZoomController } from './zoom';
import { ShareType } from './room';
export interface ToolItem {
    value: string;
    label: any;
    icon: any;
    isActive?: boolean;
    component?: React.FC<{
        isActive: boolean;
        onClick: ReactEventHandler<any>;
    }>;
}
export declare type CustomizeGlobalState = {
    materialList: CourseWareItem[];
    dynamicTaskUuidList: any[];
    roomScenes: GlobalRoomScene[];
    grantUsers: string[];
    follow: boolean;
};
export declare type GlobalRoomScene = {
    [resourceUuid: string]: {
        contextPath: string;
        index: number;
        sceneName: string;
        scenePath: string;
        totalPage: string;
        resourceName: string;
        show: boolean;
    };
};
export declare type Resource = {
    file: {
        name: string;
        type: string;
    };
    resourceName: string;
    resourceUuid: string;
    taskUuid: string;
    currentPage: number;
    totalPage: number;
    scenePath: string;
    show: boolean;
};
export declare enum BoardPencilSize {
    thin = 4,
    small = 8,
    normal = 12,
    large = 18
}
export declare enum BoardFrontSizeType {
    size12 = "12",
    size14 = "14",
    size18 = "18",
    size24 = "24",
    size26 = "26",
    size36 = "36",
    size48 = "48",
    size72 = "72"
}
export declare class BoardStore extends ZoomController {
    scenes: any[];
    appStore: EduScenarioAppStore;
    controller: any;
    constructor(appStore: EduScenarioAppStore);
    private calcViewMode;
    currentPage: number;
    totalPage: number;
    currentScene: any;
    selector: string;
    showExtension: boolean;
    activeFooterItem: string;
    uuid: string;
    activeScenePath: string;
    ready: boolean;
    enableStatus: string | boolean;
    currentStrokeWidth: number;
    _boardClient?: BoardClient;
    sceneList: any[];
    currentScenePath: string;
    resourceUuid: string;
    lineSelector: string;
    laserPoint: boolean;
    shape: string;
    scale: number;
    currentActiveToolItem: string;
    currentArrow: any;
    currentFontSize: BoardFrontSizeType;
    currentStroke: string;
    online: boolean;
    showColorPicker: boolean;
    strokeColor: any;
    allTools: any[];
    activeMap: Record<string, boolean>;
    get boardClient(): BoardClient;
    get boardPenIsActive(): boolean;
    get currentSelector(): string;
    get localUserUuid(): string;
    get currentColor(): string;
    get zoomValue(): number;
    get tools(): any[];
    get globalState(): CustomizeGlobalState;
    get roomInfo(): import("../api/declare").RoomInfo;
    get roomApi(): import("../services/room-api").RoomApi;
    get roomProperties(): {
        im: any;
        userPermission: {
            micAccess: boolean;
            cameraAccess: boolean;
        };
        roomInfo: {
            roomId: string;
            roomName: string;
            roomPassword: string;
        };
        share: {
            type: ShareType;
            screen: {
                ownerInfo: UserInfo;
                streamInfo: any;
            };
        };
        board: {
            info: {
                boardId: string;
                boardToken: string;
                appIdentifier: string;
            };
            state: {
                follow: number;
                grantUsers: string[];
            };
            ownerInfo: UserInfo;
        };
        schedule: {
            state: import("./room").RoomState;
        };
        record: {
            ownerInfo: UserInfo;
            state: number;
            recordId: string;
            recordingTime: number;
            startTime?: number | undefined;
            sid: string;
            resourceId: string;
        };
        processes: {
            micAccess: any;
            cameraAccess: any;
        };
        flexProps?: any;
    };
    get boardPermission(): BoardPermission;
    get isWhiteBoardOpening(): boolean;
    get isBoardSharingByMyself(): boolean;
    get room(): Room;
    get renderStore(): import("./render").RenderStore;
    get screenStore(): import("./screen").ScreenStore;
    get messageStore(): import("./message").MessageStore;
    openBoardSharing(): Promise<void>;
    closeBoardSharing(): Promise<void>;
    applyBoardInteract(): Promise<void>;
    cancelBoardInteract(): Promise<void>;
    setWritable(writable: boolean): Promise<void>;
    cleanBoard(): void;
    changeScenePath(path: string): void;
    updateBoardSceneItems({ scenes, resourceUuid, resourceName, page, taskUuid }: any, setScene: boolean): void;
    getResourcePath(str: string): string;
    join(info: {
        role: RoleTypeEnum;
        boardId: string;
        boardToken: string;
        appIdentifier: string;
    }): Promise<void>;
    aClassJoinBoard(params: any): Promise<void>;
    resetBoardScenes(): void;
    leave(): Promise<void>;
    setLaserPoint(): void;
    setAppliance(tool: string): void;
    changeStroke(value: any): void;
    rgbToHexColor(r: number, g: number, b: number): string;
    changeStrokeColor(colorHex: string): void;
    getCurrentStroke(memberState: MemberState): number;
    getCurrentArrow(memberState: MemberState): any;
    changeFontSize(size: BoardFrontSizeType): void;
    getCurrentFontSize(memberState: MemberState): BoardFrontSizeType;
    updateScale(scale: number): void;
    updatePen(value: any): void;
    changePage(idx: number, force?: boolean): void;
    updatePagination(): void;
    installTools(tools: any[]): void;
    reset(): void;
    mount(dom: any): void;
    unmount(): void;
    hideExtension(): void;
    setZoomScale(operation: string): void;
    moveCamera(): void;
}
