import type { DrizzleExecutor } from "../drizzle.js"; import type { MutationHint } from "../chat/types.js"; import type { PluginSecretProtector } from "./secrets.js"; import { type PluginInstallationSummary, type PluginHostPermission, type PluginPackage } from "./types.js"; export interface PluginPackageCandidate { pluginId: string; packageDirectory: string; imageStorageKey: string; } /** * Ensures one catalog package has a durable system plugin, then creates an independent installation with its own encrypted variables and container choice. * The transaction commits plugins, pluginInstallations, pluginInstallationVariables, audit, and sync evidence together so no installation can reference a partial plugin record. */ export declare function pluginInstall(executor: DrizzleExecutor, secretProtector: PluginSecretProtector, input: { actorUserId?: string; actorInstallationId?: string; installationId: string; plugin: PluginPackage; candidate?: PluginPackageCandidate; variables: Readonly>; permissions: readonly PluginHostPermission[]; containerImageId?: string; }): Promise<{ hint: MutationHint; installation: PluginInstallationSummary; pluginCreated: boolean; pluginId: string; }>; //# sourceMappingURL=pluginInstall.d.ts.map