import { AgoraWidgetController } from './controller';
import { EduStoreBase } from '../base';
import { AgoraWidgetStateListener } from './type';
/**
 * `WidgetStore` 提供活跃插件的数据和状态的访问；提供 WidgetController 实例的直接访问；提供插件相关 API，用于激活、停用和更新插件的状态。
 */
/** @en
 * The `WidgetStore` class provides access to data and status of active plug-ins; Provides direct access to the WidgetController instance; Provides plugin-related apis for activating, deactivating, and updating the status of plugins.
 */
export declare class WidgetStore extends EduStoreBase {
    private _disposers;
    private _stateListeners;
    private _dataStore;
    get widgetController(): AgoraWidgetController | undefined;
    /**
     *
     * 设置组件为可用状态
     * @param widgetId widget ID
     * @param widgetProps widget 属性
     * @param ownerUserUuid
     *
     **/
    /** @en
     * Set widget state to active
     * @param widgetId widget ID
     * @param widgetProps widget props
     * @param ownerUserUuid
     *
     */
    setActive(widgetId: string, widgetProps?: any, ownerUserUuid?: string): void;
    /**
     *
     * 设置组件为不可用状态
     * @param widgetId widget ID
     * @param widgetProps widget 属性
     **/
    /** @en
     * Set widget state to inactive
     * @param widgetId widget ID
     * @param widgetProps widget props
     */
    setInactive(widgetId: string, widgetProps?: any): void;
    /**
     * 更新组件全局属性，属性更新将同步至该组件在所有客户端上的实例
     * @param widgetId
     * @param widgetProps
     * @returns
     */
    /** @en
     *
     * @param widgetId
     * @param widgetProps
     * @returns
     */
    updateWidgetProperties(widgetId: string, widgetProps?: any): Promise<{
        data: any;
    }> | undefined;
    /**
     * 更新组件用户属性，属性更新将同步至当前用户私有属性中
     * @param widgetId
     * @param widgetProps
     * @returns
     */
    updateWidgetUserProperties(widgetId: string, widgetProps?: any): void | undefined;
    /**
     *
     * 删除当前房间中的此组件实例
     * @param widgetId widget ID
     *
     **/
    /** @en
     * delete the widget
     * @param widgetId widget ID
     */
    deleteWidget(widgetId: string): Promise<{
        data: any;
    }> | undefined;
    /**
     * 删除组件用户属性
     * @param widgetId
     * @param keys
     * @returns
     */
    /** @en
     * delete user private properties of the widget
     * @param widgetId widget ID
     */
    removeWidgetUserProperties(widgetId: string, keys?: string[]): Promise<{
        data: any;
    }> | undefined;
    /**
     * 删除组件扩展属性
     * @param widgetId
     * @param propKeys
     */
    /** @en
     * delete the extra properties of the widget
     * @param widgetId widget ID
     */
    removeWidgetExtra(widgetId: string, keys?: string[]): Promise<{
        data: any;
    }> | undefined;
    /**
     * @deprecated since v2.9.0, please use AgoraWidgetController.addWidgetStateListener
     * 添加一个组件状态监听器
     * @param listener
     */
    /** @en
     *
     * @param listener
     */
    addWidgetStateListener(listener: AgoraWidgetStateListener): void;
    /**
     * @deprecated since v2.9.0, please use AgoraWidgetController.removeWidgetStateListener
     * 移除一个组件状态监听器
     * @param listener
     */
    removeWidgetStateListener(listener: AgoraWidgetStateListener): void;
    private _setEventHandler;
    onInstall(): void;
    onDestroy(): void;
}
