/**
 * 插件沙箱
 * 用于插件隔离和权限控制
 */
import type { StartOptions } from '../types';
/**
 * 插件权限
 */
export declare enum PluginPermission {
    /**
     * 访问配置
     */
    ACCESS_CONFIG = "access_config",
    /**
     * 访问状态管理器
     */
    ACCESS_STATE_MANAGER = "access_state_manager",
    /**
     * 访问存储
     */
    ACCESS_STORAGE = "access_storage",
    /**
     * 发布事件
     */
    EMIT_EVENTS = "emit_events",
    /**
     * 订阅事件
     */
    SUBSCRIBE_EVENTS = "subscribe_events"
}
/**
 * 插件沙箱配置
 */
export interface PluginSandboxConfig {
    /**
     * 插件名称
     */
    name: string;
    /**
     * 允许的权限列表
     */
    permissions?: PluginPermission[];
    /**
     * 允许访问的配置键（白名单）
     */
    configWhitelist?: string[];
    /**
     * 允许访问的状态作用域（白名单）
     */
    stateScopeWhitelist?: (string | symbol)[];
    /**
     * 是否启用严格模式（默认true）
     */
    strictMode?: boolean;
}
/**
 * 插件沙箱
 */
export declare class PluginSandbox {
    private config;
    private permissions;
    constructor(config: PluginSandboxConfig);
    /**
     * 检查权限
     *
     * @param permission - 权限
     * @returns 是否有权限
     */
    hasPermission(permission: PluginPermission): boolean;
    /**
     * 检查是否可以访问配置键
     *
     * @param key - 配置键
     * @returns 是否可以访问
     */
    canAccessConfig(key: string): boolean;
    /**
     * 检查是否可以访问状态作用域
     *
     * @param scope - 状态作用域
     * @returns 是否可以访问
     */
    canAccessStateScope(scope: string | symbol): boolean;
    /**
     * 过滤配置（根据白名单）
     *
     * @param config - 完整配置
     * @returns 过滤后的配置
     */
    filterConfig(config: StartOptions): Partial<StartOptions>;
    /**
     * 获取沙箱配置
     */
    getConfig(): PluginSandboxConfig;
    /**
     * 更新权限
     *
     * @param permissions - 权限列表
     */
    updatePermissions(permissions: PluginPermission[]): void;
}
//# sourceMappingURL=PluginSandbox.d.ts.map