import { type UpdateBase } from "./installation-update.js"; import type { ResolvedRelease } from "../installation/release-resolver.js"; import type { GenerationSelection } from "../installation/generation-plan.js"; import { type GenerationResolverConfig } from "../installation/generation-resolver.js"; import type { GenerationStore } from "../installation/generation-store.js"; import { type GenerationActivationController } from "./generation-activation.js"; import type { ControlInstallationCatalog } from "@onebots/core/control"; import type { PersistedOperationObserver } from "../persisted-operation-observer.js"; export interface ControlInstallationOptions { directory: string; store: GenerationStore; lifecycle: Pick; /** 只由管理服务启动配置提供;不从用户请求读取宿主工件或下载入口。 */ resolver?: GenerationResolverConfig; pnpmExecutable?: string; pnpmScript?: string; currentGenerationId?(): string | null; currentSelection?(): GenerationSelection; currentConfigurationRevision?(): string; currentConfiguration?(): { revision: string; document: Record; }; resolveRelease?(): Promise; onOperation?: PersistedOperationObserver; } /** CLI/TUI/Web 共用的安装应用服务;HTTP 层仅认证、解析和传送结果。 */ export declare class ControlInstallationService { private readonly options; private readonly plans; private readonly installer; private readonly resolver; private readonly catalogReader; private readonly cancellations; private closed; constructor(options: ControlInstallationOptions); /** 只读宿主目录,不依赖账号配置或下载扩展的执行结果。 */ catalog(): ControlInstallationCatalog; plan(selection: GenerationSelection, expectedGenerationId: string | null): Promise<{ id: string; planDigest: string; baseGenerationId: string; selection: GenerationSelection; removed: GenerationSelection; packages: { name: string; version: string; }[]; peers: import("../installation/generation-plan.js").GenerationPeerRequirement[]; recommendations: string[]; }>; private planSelection; planUpdate(expected: UpdateBase): Promise<{ installationPlan?: { id: string; planDigest: string; baseGenerationId: string; selection: GenerationSelection; removed: GenerationSelection; packages: { name: string; version: string; }[]; peers: import("../installation/generation-plan.js").GenerationPeerRequirement[]; recommendations: string[]; }; state: "current" | "updates_available"; base: { generationId: string | null; configRevision: string; }; packages: { name: string; current: string; target: string; }[]; peers: import("../installation/generation-plan.js").GenerationPeerRequirement[]; recommendations: string[]; }>; install(request: { id: string; planId: string; token?: string; }, allowCredentials: boolean): import("../installation/generation-installer.js").GenerationInstallOperation; status(id: string): import("../installation/generation-installer.js").GenerationInstallOperation; cancel(id: string): import("../installation/generation-installer.js").GenerationInstallOperation; activate(id: string): Promise; close(): Promise; private assertBase; private assertConfiguration; private currentSelection; private bindingFile; private readBinding; } //# sourceMappingURL=installation-service.d.ts.map