import { NCWebsocket } from 'node-napcat-ts';
import { XincPlugin } from './plugin';
export declare class PluginManager {
    private plugins;
    private pluginsDir;
    private configDir;
    private client;
    private context;
    private builtinPlugins;
    constructor(client: NCWebsocket, dataDir: string, configDir: string);
    private createPluginContext;
    /**
     * 注册内置插件
     */
    private registerBuiltinPlugins;
    /**
     * 加载所有启用的插件
     */
    loadAllPlugins(): Promise<void>;
    /**
     * 加载内置插件
     */
    loadBuiltinPlugins(): Promise<void>;
    /**
     * 加载指定的插件
     * @param pluginNames 插件名称数组
     */
    loadPlugins(pluginNames: string[]): Promise<void>;
    /**
     * 加载单个插件
     * @param pluginName 插件名称
     */
    loadPlugin(pluginName: string): Promise<void>;
    /**
     * 卸载插件
     * @param pluginName 插件名称
     */
    unloadPlugin(pluginName: string): boolean;
    /**
     * 重新加载插件
     * @param pluginName 插件名称
     */
    reloadPlugin(pluginName: string): Promise<boolean>;
    /**
     * 禁用插件
     * @param pluginName 插件名称
     */
    disablePlugin(pluginName: string): boolean;
    /**
     * 启用插件
     * @param pluginName 插件名称
     */
    enablePlugin(pluginName: string): Promise<boolean>;
    /**
     * 获取所有已加载的插件
     */
    getLoadedPlugins(): XincPlugin[];
    /**
     * 获取所有内置插件
     */
    getBuiltinPlugins(): XincPlugin[];
}
//# sourceMappingURL=plugin-manager.d.ts.map