declare type MethodInfo = {
    pluginName: string;
};
/**
 * 用于插件间共享函数方法
 */
export declare class MethodsContainer {
    /**
     * 保存共享方法
     */
    private _methods;
    /**
     * 记录方法相关信息
     */
    private _infos;
    /**
     * 记录当前共享方法所使用的插件名称
     */
    private pluginName;
    /**
     * 父 container, 当存在时, 相关方法调用均会传递给 parent
     */
    private parent?;
    constructor(parent?: MethodsContainer, pluginName?: string);
    /**
     * 检查方法是否存在
     * @param name - 共享方法名称
     * @returns true or false
     */
    has(name: string): boolean;
    /**
     * 获取方法信息, 目前仅包含注册当前方法的插件名称
     * @param name - 共享方法名称
     * @returns 共享方法信息
     */
    getInfo(name: string): MethodInfo | undefined;
    /**
     * 注册插件间共享方法
     * @param name - 共享方法名称
     * @param method - 共享方法函数体
     */
    register(name: string, method: (...args: any[]) => any, info?: MethodInfo): void;
    /**
     * 执行插件间共享方法
     * @param name - 方法名称
     * @param args - 方法参数
     * @returns 方法执行结果
     */
    invoke<R = any>(name: string, ...args: any): R;
}
export {};
