import type { AssertModuleInstallOptions, InstallGateResult } from '../../typings/ext/market';
import type { ModuleManifest } from '../../typings/ext/module';
export type InstallModuleOptions = AssertModuleInstallOptions & {
    /** 覆盖落盘前：宿主注销钩子等 */
    beforeReplace?: (key: string, manifest: ModuleManifest) => void | Promise<void>;
};
export type InstallModuleResult = {
    manifest: ModuleManifest;
    path: string;
    hasServer: boolean;
    hasWeb: boolean;
    hasHook: boolean;
    entryUrl?: string;
    gate: InstallGateResult;
};
/**
 * 安装闭环（仅 core）：验签门禁 → 解压落盘 → ModuleRegistry.load
 * 宿主不得自行 AdmZip 解压；菜单/钩子由宿主在返回后处理。
 */
export declare function installModuleFromZip(filePath: string, opts?: InstallModuleOptions): Promise<InstallModuleResult>;
/** 仅卸盘（菜单/钩子由宿主处理） */
export declare function uninstallModuleFiles(key: string): {
    ok: true;
    path: string;
};
