import type { WBColor, WBConvertConfig, WBDocContents, WBDocExtHtml, WBDocInfo, WBStamp, WBVisionConfig } from './Objects';
import { ResultCode, WBOptionType, WBClearType, WBFillType, WBFontStyle, WBImageScalingMode, WBRoleType, WBSnapshotMode, WBToolType } from './Enums';
import type { Subscription, RtcWhiteboardEventHandler } from './RtcEvents';
import type { RefObject } from 'react';
import type { RtcWhiteboardSurfaceView } from './RtcRenderView.native';
/**
 * The {@link RtcWhiteboard} class.
 */
export default class RtcWhiteboard implements RtcWhiteboardInterface {
    /**
     * The ID of RtcWhiteboard
     */
    readonly whiteboardId: string;
    /**
     * @ignore
     */
    private _listeners;
    /**
     * @ignore
     */
    constructor(whiteboardId: string);
    /**
     * @ignore
     */
    private _callMethod;
    /**
     * @ignore
     */
    destroy(): void;
    /**
     * Adds the [`RtcWhiteboardEventHandler`]{@link RtcWhiteboardEventHandler} handler.
     *
     * After setting the [`RtcWhiteboardEventHandler`]{@link RtcWhiteboardEventHandler} handler, you can listen for `RtcWhiteboard` events and receive the statistics of the corresponding RtcEngineKit instance.
     * @param event The event type.
     * @param listener The [`RtcWhiteboardEventHandler`]{@link RtcWhiteboardEventHandler} handler.
     */
    addListener<EventType extends keyof RtcWhiteboardEventHandler>(event: EventType, listener: RtcWhiteboardEventHandler[EventType]): Subscription;
    /**
     * Removes the [`RtcWhiteboardEventHandler`]{@link RtcWhiteboardEventHandler} handler.
     *
     * For callback events that you only want to listen for once, call this method to remove the specific [`RtcWhiteboardEventHandler`]{@link RtcWhiteboardEventHandler} objects after you have received them.
     * @param event The event type.
     * @param listener The [`RtcWhiteboardEventHandler`]{@link RtcWhiteboardEventHandler} handler.
     */
    removeListener<EventType extends keyof RtcWhiteboardEventHandler>(event: EventType, listener: RtcWhiteboardEventHandler[EventType]): void;
    /**
     * Removes all the [`RtcWhiteboardEventHandler`]{@link RtcWhiteboardEventHandler} handlers.
     * @param event The event type.
     */
    removeAllListeners<EventType extends keyof RtcWhiteboardEventHandler>(event?: EventType): void;
    /**
     * @~english
     * @brief Open the whiteboard.
     * @param view The whiteboard display view provided by customer.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 打开白板。
     * @param view 客户提供的白板显示视图。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    open(view: RefObject<RtcWhiteboardSurfaceView>): Promise<ResultCode>;
    /**
     * @~english
     * @brief Close the whiteboard.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 关闭白板。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    close(): Promise<ResultCode>;
    /**
     * @~english
     * @brief Leave the whiteboard.
     * @return
     *    - kPanoResultOK: Success
     *    - Others: Fail
     * @~chinese
     * @brief leave白板
     * @return
     *   - kPanoResultOK: 成功
     *   - 其他: 失败
     */
    leave(): Promise<ResultCode>;
    /**
     * @~english
     * @brief Stop the whiteboard.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @note default whiteboard can't be stopped.
     * @~chinese
     * @brief 停止白板。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     * @note 默认白板不能被停止。
     */
    stop(): Promise<ResultCode>;
    /**
     * @~english
     * @brief get current Whiteboard Id
     * @return
     *    - Whiteboard Id
     * @~chinese
     * @brief 获取当前白板Id
     * @return
     *   - 白板Id
     */
    getCurrentWhiteboardId(): Promise<string>;
    /**
     * @~english
     * @brief Set whiteboard role type.
     * @param role The whiteboard role type.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置白板角色类型。
     * @param role 白板角色。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setRoleType(type: WBRoleType): Promise<ResultCode>;
    /**
     * @~english
     * @brief set tool type.
     * @param type tool type.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置工具类型。
     * @param type 工具类型。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setToolType(type: WBToolType): Promise<ResultCode>;
    /**
     * @~english
     * @brief get tool type
     * @return
     *    - tool type
     * @~chinese
     * @brief 获取工具类型
     * @return
     *   - 工具类型
     */
    getToolType(): Promise<WBToolType>;
    /**
     * @~english
     * @brief set line width.
     * @param size line width.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置线宽。
     * @param size 线宽。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setLineWidth(width: number): Promise<ResultCode>;
    /**
     * @~english
     * @brief Set fill type.
     * @param type Fill type.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置填充类型。
     * @param type 填充类型。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setFillType(type: WBFillType): Promise<ResultCode>;
    /**
     * @~english
     * @brief Set fill color.
     * @param color r g b a color and alpha. Valid value range: [0, 1].
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置填充颜色。
     * @param color r g b a 填充颜色值。有效值范围：[0, 1]。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setFillColor(color: WBColor): Promise<ResultCode>;
    /**
     * @~english
     * @brief Set the whiteboard foreground color.
     * @param color r g b a color and alpha. Valid value range: [0, 1].
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置白板前景色。
     * @param color r g b a 前景颜色值。有效值范围：[0, 1]。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setForegroundColor(color: WBColor): Promise<ResultCode>;
    /**
     * @~english
     * @brief Set the whiteboard background color.
     * @param color r g b a color and alpha. Valid value range: [0, 1].
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置白板背景色。
     * @param color r g b a 背景颜色值。有效值范围：[0, 1]。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setBackgroundColor(color: WBColor): Promise<ResultCode>;
    /**
     * @~english
     * @brief Set font style.
     * @param style font style.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置字体样式。
     * @param style 字体样式。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setFontStyle(style: WBFontStyle): Promise<ResultCode>;
    /**
     * @~english
     * @brief Set font size.
     * @param size font size.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置字体大小。
     * @param size 字体大小。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setFontSize(size: number): Promise<ResultCode>;
    /**
     * @~english
     * @brief Add Stamp Resource
     * @param stamp stamp resource
     * @return
     *    - OK: Success
     *    - Others: Fail
     * @~chinese
     * @brief 添加图章资源
     * @param stamp 图章资源
     * @return
     *   - OK： 成功
     *   - Others: 失败
     */
    addStamp(stamp: WBStamp): Promise<ResultCode>;
    /**
     * @~english
     * @brief Set Stamp Resource
     * @param stampId stamp resource ID
     * @return
     *    - OK: Success
     *    - Others: Fail
     * @~chinese
     * @brief 设置图章资源
     * @param stampId 图章资源ID
     * @return
     *   - OK： 成功
     *   - Others: 失败
     */
    setStamp(stampId: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief set background image scaling mode.
     * @param mode background image scaling mode.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置白板背景图缩放模式。
     * @param mode 背景图缩放模式。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setBackgroundImageScalingMode(mode: WBImageScalingMode): Promise<ResultCode>;
    /**
     * @~english
     * @brief set background image.
     * @param imageUrl image URL.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置白板背景图片。
     * @param imageUrl 背景图 URL，可为本地路径或远程 URL。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setBackgroundImage(imageUrl: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief set background image of specified whiteboard page.
     * @param imageUrl image URL.
     * @param pageNo the page number.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置白板指定页背景图片。
     * @param imageUrl 背景图 URL，可为本地路径或远程 URL。
     * @param pageNo 白板页码。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setBackgroundImageWithPage(imageUrl: string, pageNo: number): Promise<ResultCode>;
    /**
     * @~english
     * @brief get current page number.
     * @return
     *    - -1: no page.
     *    - Others: page number.
     * @~chinese
     * @brief 获取当前白板页码。
     * @return
     *   - -1：白板未打开。
     *   - 其他：白板页码。
     */
    getCurrentPageNumber(): Promise<number>;
    /**
     * @~english
     * @brief get total number of pages.
     * @return number of pages.
     * @~chinese
     * @brief 获取总白板页码数。
     * @return 页码数。
     */
    getTotalNumberOfPages(): Promise<number>;
    /**
     * @~english
     * @brief add new page to the end.
     * @param autoSwitch auto switch to the new page.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 添加一个新页面到最后。
     * @param autoSwitch 自动切换到新添加的页面。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    addPage(autoSwitch: boolean): Promise<ResultCode>;
    /**
     * @~english
     * @brief add new page after the pageNo.
     * @param pageNo the page number.
     * @param autoSwitch auto switch to the new page.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 添加一个新页面到 pageNo 之后。
     * @param pageNo 页码。
     * @param autoSwitch 自动切换到新添加的页面。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    insertPage(pageNo: number, autoSwitch: boolean): Promise<ResultCode>;
    /**
     * @~english
     * @brief goto the page pageNo.
     * @param pageNo the page.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 删除页 pageNo。
     * @param pageNo 被删除的页码。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    removePage(pageNo: number, switchNext?: boolean): Promise<ResultCode>;
    /**
     * @~english
     * @brief switch to page pageNo.
     * @param pageNo the page.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 切换到页 pageNo。
     * @param pageNo 页码。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    gotoPage(pageNo: number): Promise<ResultCode>;
    /**
     * @~english
     * @brief switch to next page.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 切换到下一页。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    nextPage(): Promise<ResultCode>;
    /**
     * @~english
     * @brief switch to previous page.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 切换到前一页。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    prevPage(): Promise<ResultCode>;
    /**
     * @~english
     * @brief next step for H5 doc
     * @return
     *    - OK: Success
     *    - Others: Fail
     * @~chinese
     * @brief 执行H5文件下一步
     * @return
     *   - OK： 成功
     *   - Others: 失败
     */
    nextStep(): Promise<ResultCode>;
    /**
     * @~english
     * @brief previous step for H5 doc
     * @return
     *    - OK: Success
     *    - Others: Fail
     * @~chinese
     * @brief 执行H5文件上一步
     * @return
     *   - OK： 成功
     *   - Others: 失败
     */
    prevStep(): Promise<ResultCode>;
    /**
     * @~english
     * @brief add image file to current whiteboard page
     * @param imageUrl  image URL
     * @return
     *    - ResultCode.OK: Success
     *    - Others: Fail
     * @~chinese
     * @brief 添加图片到当前白板页
     * @param imageUrl  图像 URL，可为本地路径或远程 URL
     * @return
     *   - ResultCode.OK: 成功
     *   - 其他: 失败
     */
    addImageFile(imageUrl: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief add audio media file to current whiteboard page
     * @param mediaUrl  media URL
     * @return
     *    - ResultCode.OK: Success
     *    - Others: Fail
     * @~chinese
     * @brief 添加音频媒体文件到当前白板页
     * @param mediaUrl  媒体 URL，可为本地路径或远程 URL
     * @return
     *   - ResultCode.OK: 成功
     *   - 其他: 失败
     */
    addAudioFile(mediaUrl: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief add video media file to current whiteboard page
     * @param mediaUrl  media URL
     * @return
     *    - ResultCode.OK: Success
     *    - Others: Fail
     * @~chinese
     * @brief 添加视频媒体文件到当前白板页
     * @param mediaUrl  媒体 URL，可为本地路径或远程 URL
     * @return
     *   - ResultCode.OK: 成功
     *   - 其他: 失败
     */
    addVideoFile(mediaUrl: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief Add some background images to current whiteboard file.
     * @param urls Background image url array (remote url only).
     * @return
     *    - Current whiteboard file ID, if fail return empty string.
     * @note PanoWhiteboard has created doc with whiteboard file ID "default" when created.
     * @~chinese
     * @brief 添加指定数量的背景图到当前白板文件。
     * @param urls 背景图url数组（仅支持远程URL）。
     * @return
     *    - 当前白板文件ID，如果失败返回空串。
     * @note PanoWhiteboard创建时会生成白板文件ID为"default"的白板文件。
     */
    addBackgroundImages(urls: string[]): Promise<string>;
    /**
     * @~english
     * @brief Add H5 file URL to current whiteboard file as background
     * @param url H5 URL (remote URL only)
     * @param downloadUrl URL of download H5 files, should be packed as .zip file
     * @return
     *    - Current whiteborad file ID, if fail return null
     * @note PanoWhiteboard has created doc with whiteboard file ID "default" when created
     * @~chinese
     * @brief 添加H5文件URL到当前白板文件作为背景
     * @param url 网络URL（仅支持远程URL）
     * @param downloadUrl H5文件的下载URL, 所有文件需要打包为zip文件
     * @return
     *    - 当前白板文件ID，如果失败返回null
     * @note PanoWhiteboard创建时会生成白板文件ID为"default"的白板文件
     */
    addH5File(url: string, downloadUrl?: string): Promise<string>;
    /**
     * @~english
     * @brief Add a new whiteboard file
     * @param contents Whiteboard file contents with converted result
     * @return
     *    - Current whiteborad file ID, if fail return nullptr
     * @note PanoWhiteboard has created doc with whiteboard file ID "default" when created
     * @~chinese
     * @brief 添加新的白板文件
     * @param contents 根据转码结果指定的白板文件内容
     * @return
     *    - 当前白板文件ID，如果失败返回nullptr
     * @note PanoWhiteboard创建时会生成白板文件ID为"default"的白板文件
     */
    addDoc(contents: WBDocContents): Promise<string>;
    /**
     * @~english
     * @brief Add a new whiteboard file with external html
     * @param contents Whiteboard file contents with external html
     * @return
     *    - Current whiteborad file ID, if fail return nullptr
     * @note PanoWhiteboard has created doc with whiteboard file ID "default" when created
     * @~chinese
     * @brief 使用外部Html添加新的白板文件
     * @param contents 外部Html的白板文件内容
     * @return
     *    - 当前白板文件ID，如果失败返回nullptr
     * @note PanoWhiteboard创建时会生成白板文件ID为"default"的白板文件
     */
    addDocWithExtHtml(extHtml: WBDocExtHtml): Promise<string>;
    /**
     * @~english
     * @brief Create new whiteboard file with some background images.
     * @param imageUrls Background image url array (remote url only).
     * @return
     *    - Whiteboard file ID created, if fail return empty string.
     * @note PanoWhiteboard has created doc with whiteboard file ID "default" when created.
     * @~chinese
     * @brief 导入指定数量的背景图并创建新的白板文件。
     * @param imageUrls 背景图url数组（仅支持远程URL）。
     * @return
     *    - 新创建的白板文件ID，如果失败返回空串。
     * @note PanoWhiteboard 创建时会生成白板文件ID为"default"的白板文件。
     */
    createDocWithImages(urls: string[]): Promise<string>;
    /**
     * @~english
     * @brief Upload local file for transcode and create new whiteboard file
     * @param filePath Local file path
     * @param config File convert configuration
     * @return
     *    - Whiteborad file ID created, if fail return empty string
     * @note PanoWhiteboard has created doc with whiteboard file ID "default" when created
     * @~chinese
     * @brief 上传本地需转码的文件并创建新的白板文件
     * @param filePath 本地文件路径
     * @param config 转码配置
     * @return
     *    - 新创建的白板文件ID，如果失败返回空串
     * @note PanoWhiteboard 创建时会生成白板文件ID为"default"的白板文件
     */
    createDocWithFilePath(filePath: string, config?: WBConvertConfig): Promise<string>;
    /**
     * @~english
     * @brief Delete whiteboard file.
     * @param fileId Whiteboard file ID.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @note "default" whiteboard file could not be deleted.
     * @~chinese
     * @brief 删除白板文件。
     * @param fileId 白板文件ID。
     * @return
     *    - ResultCode.OK：成功。
     *    - Others: 失败。
     * @note "default" 白板文件不能被删除。
     */
    deleteDoc(fileId: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief Switch whiteboard file.
     * @param fileId Whiteboard file ID.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 切换白板文件。
     * @param fileId 白板文件ID。
     * @return
     *    - ResultCode.OK：成功。
     *    - 其他：失败。
     */
    switchDoc(fileId: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief Save whiteboard file to multiple images. Save each page to one image.
     * Image name format is like whiteboard_[fileId]_[page number].png, eg. whiteboard_default_1.png.
     * @param fileId Whiteboard file ID.
     * @param outputDir output directory.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 保存白板文件为多张图片。每个白板页存为一张图。
     * 图像名称格式为whiteboard_[fileId]_[page number].png, 例如：whiteboard_default_1.png。
     * @param fileId 白板文件ID。
     * @param outputDir 输出路径。
     * @return
     *    - ResultCode.OK：成功。
     *    - 其他：失败。
     */
    saveDocToImages(fileId: string, outputDir: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief Enumerate whiteboard files.
     * @return fileId array.
     * @~chinese
     * @brief 枚举白板文件。
     * @return fileId数组。
     */
    enumerateFiles(): Promise<string[]>;
    /**
     * @~english
     * @brief get current whiteboard file ID.
     * @return
     *    - current whiteboard file ID, if fail return null.
     * @~chinese
     * @brief 获取当前白板文件ID。
     * @return
     *    - 当前白板文件ID, 失败则返回null。
     */
    getCurrentFileId(): Promise<string>;
    /**
     * @~english
     * @brief get whiteboard file information with specific fileId
     * @param fileId Whiteboard file ID
     * @return
     *    - non-null: whiteborad file information
     *    - others: Failure
     * @note DO NOT delete this pointer,  RtcEngine can handle its life cycle.
     * @~chinese
     * @brief 获取指定白板文件ID的白板文件信息
     * @param fileId 白板文件ID
     * @return
     *    - 非空：白板文件信息
     *    - 空：失败
     */
    getFileInfo(fileId: string): Promise<WBDocInfo>;
    /**
     * @~english
     * @brief send custom message to external html
     * @param fileId Whiteboard file ID
     * @param msg custom message
     * @param length length of custom message
     * @return
     *    - kPanoResultOK: Success
     *     - Others: Fail
     * @note only support external html doc
     * @~chinese
     * @brief 发送自定义消息到外部HTML页面
     * @param fileId 白板文件ID
     * @param msg 自定义消息
     * @param length 自定义消息长度
     * @return
     *    - kPanoResultOK: 成功
     *    - 其他: 失败
     * @note 只支持外部HTML
     */
    sendToExternalHtml(fileId: string, msg: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief clear whiteboard content.
     * @param curPage true: clear current page only; false: clear all pages.
     * @param type WBClearType enum type.
     * @return
     *    - ResultCode.OK: Success.
     *    - ResultCode.NoPrivilege: need ADMIN role to call this API.
     *    - Others: Fail.
     * @note this API need ADMIN role.
     * @~chinese
     * @brief 清除白板内容，需要 ADMIN 角色才可调用成功。
     * @param curPage true: 只清除当前页内容；false: 清除所有页内容。
     * @param type WBClearType 枚举类型。
     * @return
     *   - ResultCode.OK：成功。
     *   - ResultCode.NoPrivilege: 没有权限。
     *   - 其他：失败。
     * @note 此接口只有 ADMIN 角色才可调用。
     */
    clearContents(curPage: boolean, type: WBClearType): Promise<ResultCode>;
    /**
     * @~english
     * @brief clear whiteboard content by specific user ID.
     * @param userId user ID.
     * @param curPage true: clear current page only; false: clear all pages.
     * @param type WBClearType enum type.
     * @return
     *    - ResultCode.OK: Success.
     *    - ResultCode.NoPrivilege: need ADMIN role to call this API.
     *    - Others: Fail.
     * @note ADMIN role is required if the userId is not local user.
     * @~chinese
     * @brief 清除指定用户的白板内容。
     * @param userId 用户ID。
     * @param curPage true: 只清除当前页内容；false: 清除所有页内容。
     * @param type WBClearType 枚举类型。
     * @return
     *   - ResultCode.OK：成功。
     *   - ResultCode.NoPrivilege: 没有权限。
     *   - 其他：失败。
     * @note 只有 ADMIN 角色才可以清除非本地用户的内容。
     */
    clearUserContents(userId: string, curPage: boolean, type: WBClearType): Promise<ResultCode>;
    /**
     * @~english
     * @brief undo.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 撤消上一次操作。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    undo(): Promise<ResultCode>;
    /**
     * @~english
     * @brief redo.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 重做白板的上一次被撤销操作。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    redo(): Promise<ResultCode>;
    /**
     * @~english
     * @brief get current whiteboard scale factor.
     * @return scale factor.
     * @~chinese
     * @brief 获取当前白板视图的缩放比例。
     * @return 缩放比例值。
     */
    getCurrentScaleFactor(): Promise<number>;
    /**
     * @~english
     * @brief set current whiteboard scale factor.
     * @param scale scale factor. Valid value range [0.1, 5.0].
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 设置当前白板视图的缩放比例。
     * @param scale 缩放比例值。有效值范围 [0.1, 5.0]。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setCurrentScaleFactor(scale: number): Promise<ResultCode>;
    /**
     * @~english
     * @brief save whiteboard contents to image.
     * @param mode snapshot mode.
     * @param outputDir output directory.
     * @note snapshot result and image filename is returned in callback onSnapshotComplete.
     * @return
     *    - ResultCode.OK: Success.
     *    - Others: Fail.
     * @~chinese
     * @brief 保存白板内容到图像。
     * @param mode 快照模式。
     * @param outputDir 输出路径。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     * @note 快照结果和图像文件名通过回调函数onSnapshotComplete返回。
     */
    snapshot(mode: WBSnapshotMode, outputDir: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief Configure whiteboard initial size
     * @param config config param
     * @return
     *    - OK: Success
     *    - Others: Fail
     * @~chinese
     * @brief 设置白板初始大小
     * @param config 配置参数
     * @return
     *   - OK： 成功
     *   - Others: 失败
     */
    initVision(config: WBVisionConfig): Promise<ResultCode>;
    /**
     * @~english
     * @brief Reset vision of current page
     * @return
     *   - OK: Success
     *   - Others: Failure
     * @~chinese
     * @brief 重置当前页视角
     * @return
     *   - OK: 成功
     *   - Others: 失败
     */
    resetVision(): Promise<ResultCode>;
    /**
     * @~english
     * Start share vision
     * @return
     *   - ResultCode.OK: Success
     *   - others: Failure
     * @~chinese
     * 开始共享视角
     * @return
     *   - ResultCode.OK: 成功
     *   - 其他: 失败
     */
    startShareVision(): Promise<ResultCode>;
    /**
     * @~english
     * Stop share vision
     * @return
     *   - ResultCode.OK: Success
     *   - others: Failure
     * @~chinese
     * 停止共享视角
     * @return
     *   - ResultCode.OK: 成功
     *   - 其他: 失败
     */
    stopShareVision(): Promise<ResultCode>;
    /**
     * @~english
     * Start follow vision
     * @return
     *   - ResultCode.OK: Success
     *   - others: Failure
     * @~chinese
     * 开始跟随视角
     * @return
     *   - ResultCode.OK: 成功
     *   - 其他: 失败
     */
    startFollowVision(): Promise<ResultCode>;
    /**
     * @~english
     * Stop follow vision
     * @return
     *   - ResultCode.OK: Success
     *   - others: Failure
     * @~chinese
     * 停止跟随视角
     * @return
     *   - ResultCode.OK: 成功
     *   - 其他: 失败
     */
    stopFollowVision(): Promise<ResultCode>;
    /**
     * @~english
     * @brief Sync vision of current page
     * @return
     *   - kPanoResultOK: Success
     *   - others: Failure
     * @~chinese
     * @brief 同步当前页视角
     * @return
     *   - kPanoResultOK: 成功
     *   - 其他: 失败
     */
    syncVision(): Promise<ResultCode>;
    /**
     * @~english
     * @brief Send message to the user specified by userId.
     * @param userId The user who will receive the message.
     * @param message The message, max size is 16KB.
     * @return
     *   - ResultCode.OK： Success.
     *   - Others: Fail.
     * @~chinese
     * @brief 发送消息给某个指定用户。
     * @param userId 用户 ID。
     * @param message 要发送的消息，最大为 16KB。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    sendMessage(message: string, userId: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief Broadcast message to all users.
     * @param message The message, max size is 16KB.
     * @return
     *   - ResultCode.OK：Success.
     *   - Others: Fail.
     * @~chinese
     * @brief 广播消息给所有用户。
     * @param message 要广播的消息，最大为 16KB。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    broadcastMessage(message: string): Promise<ResultCode>;
    /**
     * @~english
     * @brief Set option object to Whiteboard.
     * @param option The Option object.
     * @param type WBOptionType enum type.
     * @return
     *   - ResultCode.OK: Success.
     *   - others: Failure.
     * @~chinese
     * @brief 设置选项对象给白板。
     * @param option 选项对象。
     * @param type WBOptionType 枚举类型。
     * @return
     *   - ResultCode.OK：成功。
     *   - 其他：失败。
     */
    setOption(option: any, type: WBOptionType): Promise<ResultCode>;
}
interface RtcWhiteboardInterface {
    open(view: RefObject<RtcWhiteboardSurfaceView>): Promise<ResultCode>;
    close(): Promise<ResultCode>;
    leave(): Promise<ResultCode>;
    stop(): Promise<ResultCode>;
    getCurrentWhiteboardId(): Promise<string>;
    setRoleType(type: WBRoleType): Promise<ResultCode>;
    setToolType(type: WBToolType): Promise<ResultCode>;
    getToolType(): Promise<WBToolType>;
    setLineWidth(width: number): Promise<ResultCode>;
    setFillType(type: WBFillType): Promise<ResultCode>;
    setFillColor(color: WBColor): Promise<ResultCode>;
    setForegroundColor(color: WBColor): Promise<ResultCode>;
    setBackgroundColor(color: WBColor): Promise<ResultCode>;
    setFontStyle(style: WBFontStyle): Promise<ResultCode>;
    setFontSize(size: number): Promise<ResultCode>;
    addStamp(stamp: WBStamp): Promise<ResultCode>;
    setStamp(stampId: string): Promise<ResultCode>;
    setBackgroundImageScalingMode(mode: WBImageScalingMode): Promise<ResultCode>;
    setBackgroundImage(imageUrl: string): Promise<ResultCode>;
    setBackgroundImageWithPage(imageUrl: string, pageNo: number): Promise<ResultCode>;
    getCurrentPageNumber(): Promise<number>;
    getTotalNumberOfPages(): Promise<number>;
    addPage(autoSwitch: boolean): Promise<ResultCode>;
    insertPage(pageNo: number, autoSwitch: boolean): Promise<ResultCode>;
    removePage(pageNo: number, switchNext: boolean): Promise<ResultCode>;
    gotoPage(pageNo: number): Promise<ResultCode>;
    nextPage(): Promise<ResultCode>;
    prevPage(): Promise<ResultCode>;
    nextStep(): Promise<ResultCode>;
    prevStep(): Promise<ResultCode>;
    addImageFile(imageUrl: string): Promise<ResultCode>;
    addAudioFile(mediaUrl: string): Promise<ResultCode>;
    addVideoFile(mediaUrl: string): Promise<ResultCode>;
    addBackgroundImages(urls: string[]): Promise<string>;
    addH5File(url: string, downloadUrl?: string): Promise<string>;
    addDoc(contents: WBDocContents): Promise<string>;
    addDocWithExtHtml(extHtml: WBDocExtHtml): Promise<string>;
    createDocWithImages(urls: string[]): Promise<string>;
    createDocWithFilePath(filePath: string, config?: WBConvertConfig): Promise<string>;
    deleteDoc(fileId: string): Promise<ResultCode>;
    switchDoc(fileId: string): Promise<ResultCode>;
    saveDocToImages(fileId: string, outputDir: string): Promise<ResultCode>;
    enumerateFiles(): Promise<string[]>;
    getCurrentFileId(): Promise<string>;
    getFileInfo(fileId: string): Promise<WBDocInfo>;
    sendToExternalHtml(fileId: string, msg: string): Promise<ResultCode>;
    clearContents(curPage: boolean, type: WBClearType): Promise<ResultCode>;
    clearUserContents(userId: string, curPage: boolean, type: WBClearType): Promise<ResultCode>;
    undo(): Promise<ResultCode>;
    redo(): Promise<ResultCode>;
    getCurrentScaleFactor(): Promise<number>;
    setCurrentScaleFactor(scale: number): Promise<ResultCode>;
    snapshot(mode: WBSnapshotMode, outputDir: string): Promise<ResultCode>;
    initVision(config: WBVisionConfig): Promise<ResultCode>;
    resetVision(): Promise<ResultCode>;
    startShareVision(): Promise<ResultCode>;
    stopShareVision(): Promise<ResultCode>;
    startFollowVision(): Promise<ResultCode>;
    stopFollowVision(): Promise<ResultCode>;
    syncVision(): Promise<ResultCode>;
    sendMessage(message: string, userId: string): Promise<ResultCode>;
    broadcastMessage(message: string): Promise<ResultCode>;
    setOption(option: any, type: WBOptionType): Promise<ResultCode>;
}
export {};
