export type { CoreAppContext } from './core';
export { CoreContext, CoreContextProvider } from './core';
export declare const usePretestContext: () => {
    cameraError: boolean;
    microphoneError: boolean;
    cameraList: any[];
    microphoneList: any[];
    speakerList: any[];
    cameraId: string;
    microphoneId: string;
    speakerId: string;
    microphoneLevel: number;
    isMirror: boolean;
    setMirror: (val: boolean) => void;
    installPretest: () => () => void;
    openTestCamera: () => Promise<void>;
    closeTestCamera: () => void;
    openTestMicrophone: (payload: {
        enableRecording: boolean;
    }) => Promise<void>;
    closeTestMicrophone: () => void;
    changeTestCamera: (deviceId: string) => Promise<void>;
    changeTestMicrophone: (deviceId: string) => Promise<void>;
    changeTestMicrophoneVolume: (value: any) => Promise<void>;
    changeTestSpeakerVolume: (value: any) => Promise<void>;
    pretestCameraRenderer: import("../../../agora-rte-sdk/src").LocalUserRenderer | undefined;
    changeDevice: (deviceType: string, value: any) => Promise<void>;
    changeAudioVolume: (deviceType: string, value: any) => Promise<void>;
    getCameras: () => Promise<any[]>;
    getMicrophones: () => Promise<any[]>;
};
export declare const useGlobalContext: () => {
    params: import("..").AppStoreInitParams;
    mainPath: string | undefined;
    toastEventObserver: import("rxjs").Subject<any>;
    dialogEventObserver: import("rxjs").Subject<any>;
    fireDialog: (eventName: string, props?: any) => void;
    fireToast: (eventName: string, props?: any) => void;
};
export declare const useRoomContext: () => {
    roomJoined: boolean;
    join: () => Promise<void>;
    leaveRoom: () => Promise<void>;
    closeRoom: () => Promise<void>;
    changeUserPermission: (device: import("..").DeviceTypeEnum, access: boolean) => Promise<void>;
    hasCameraAccess: boolean;
    hasMicAccess: boolean;
    roomInfo: {
        roomName: string;
        roomPassword: string;
        startTime: number;
        duration: number;
    };
    isChangingUserPermission: boolean;
    uploadRoomLog: () => Promise<any>;
    flexRoomProperties: any;
    updateFlexRoomProperties: (properties?: any) => Promise<any>;
};
export declare const useBoardContext: () => {
    room: import("white-web-sdk").Room;
    zoomValue: number;
    currentPage: number;
    totalPage: number;
    currentColor: string;
    currentStrokeWidth: number;
    currentSelector: string;
    lineSelector: string;
    activeMap: Record<string, boolean>;
    ready: boolean;
    tools: any[];
    changeStroke: (value: any) => void;
    changeStrokeColor: (colorHex: string) => void;
    mountToDOM: (dom: HTMLDivElement | null) => Promise<void>;
    setAppliance: (tool: string) => void;
    setZoomScale: (operation: string) => void;
    updatePen: (value: any) => void;
    boardPenIsActive: boolean;
    setLaserPoint: () => void;
    installTools: (tools: any[]) => void;
    isWhiteBoardOpening: boolean;
    openBoardSharing: () => Promise<void>;
    closeBoardSharing: () => Promise<void>;
    boardPermission: import("..").BoardPermission;
    applyBoardInteract: () => Promise<void>;
    cancelBoardInteract: () => Promise<void>;
    setWritable: (writable: boolean) => Promise<void>;
    isBoardSharingByMyself: boolean;
    cleanBoard: () => void;
};
export declare const useRecordContext: () => {
    recordState: import("..").RecordState;
    isRecordingByMyself: boolean;
    startRecording: (config?: import("..").RecordConfig | undefined) => Promise<any>;
    stopRecording: () => Promise<void>;
    getRecordFiles: () => Promise<any>;
    recordStartTime: number;
};
export declare const useRenderContext: () => {
    renderInfoList: import("..").RenderInfo[];
};
export declare const useMessagesContext: () => {
    chatMessageList: import("..").ChatMessage[];
    notifyMessageList: import("..").NotifyMessage[];
    unreadChatMessageCount: number;
    setUnreadChatMessageCount: (count?: number) => void;
    sendChatMessage: (content: string) => Promise<void>;
    resendChatMessage: (messageId: number) => Promise<void>;
    setUserInOutNotificationLimitCount: (count: number) => void;
    dealNotifyMessageEvent: (messageId: number) => Promise<void>;
    inOutNotificationLimitCount: number;
    hasUnreadNotifyMessage: boolean;
    toggleNotifyMessageDialog: (v: boolean) => void;
    setChatVisible: (visible: boolean) => void;
    chatVisible: boolean;
    sendPrivateChatMessage: (targetUserId: string, content: string) => Promise<unknown>;
    privateChatMessage: import("..").PrivateChatMessage;
};
export declare const useUsersContext: () => {
    applyToBeHost: () => Promise<void>;
    giveUpHost: () => Promise<void>;
    setAsHost: (userId: string) => Promise<void>;
    kickOut: (userId: string) => Promise<void>;
    isHost: boolean;
    hasHost: boolean;
    userDetailInfoList: import("..").UserDetailInfo[];
    dealUserOperation: (userId: string, operation: import("..").UserOperation) => Promise<void>;
    localUserInfo: import("..").UserInfo;
    LocalConnectState: import("..").ConnectState;
    updateLocalUserProperties: (properties: Object) => Promise<void>;
    deleteLocalUserProperties: (keys: string | string[]) => Promise<void>;
};
export declare const useMediaContext: () => {
    openLocalDevice: (device: import("..").DeviceTypeEnum) => Promise<void>;
    closeLocalDevice: (type: import("..").DeviceTypeEnum) => Promise<void>;
    micLocalDeviceState: import("..").LocalDeviceState;
    cameraLocalDeviceState: import("..").LocalDeviceState;
    micApprovingCountdown: number;
    cameraApprovingCountdown: number;
    checkDevicePermission: (device: import("..").DeviceTypeEnum) => import("..").DevicePermission.approveNeed | import("..").DevicePermission.granted | undefined;
    networkQuality: import("..").NetworkQualityLevel;
    applyOpenLocalDevice: (device: import("..").DeviceTypeEnum) => Promise<void>;
    unSubscribeAudio: (streamId: string) => void;
    subscribeAudio: (streamId: string) => void;
    unSubscribeVideo: (streamId: string) => void;
    subscribeVideo: (streamId: string) => void;
};
export declare const useScreenContext: () => {
    isScreenSharing: boolean;
    openScreenSharing: () => Promise<void>;
    closeScreenSharing: () => Promise<void>;
    isScreenSharingByMyself: boolean;
};
