import type { PluginInfo } from '../../typings/ext/plugin';
import type { ModuleHandler } from '../../typings/ext/module';
type PluginCtor = new () => {
    init: (info: PluginInfo, ctx?: unknown, app?: unknown, services?: Record<string, unknown>) => Promise<void>;
};
/**
 * 从落盘 server/index.js 加载。
 * 读入后走内存编译，禁止 createRequire 落盘路径：
 * bun --watch 会把新解压的插件文件当成依赖，安装过程中重启 → EPIPE。
 */
export declare function loadPluginClassFromPath(filePath: string): PluginCtor;
/**
 * 字符串内容加载（遗留 plugin JSON）。
 * 仅内存 _compile，禁止写临时文件再 require（会触发 bun --watch 死循环）。
 */
export declare function loadPluginClass(content: string): PluginCtor;
/** 从落盘文件取出 handlers（有 routes 时用；内存编译，不 createRequire） */
export declare function loadModuleHandlersFromPath(filePath: string, required?: boolean): Record<string, ModuleHandler>;
/**
 * 解析 server/index.js 字符串中的 handlers（遗留路径）。
 * 内存编译，不落盘。
 */
export declare function loadModuleHandlers(content: string, required?: boolean): Record<string, ModuleHandler>;
/** modules/{key}/server/index.js（若存在） */
export declare function resolvePluginServerPath(keyName: string): string | undefined;
/** 优先 modules/{key}/server/index.js */
export declare function readPluginScript(keyName: string): string | undefined;
export {};
