import { PluginUpdateStateStore } from './plugin-update-state.js'; import type { PluginUpdaterPlan } from './plugin-updater-helper.js'; import type { ArkmePluginUpdateInstallSnapshot, ArkmePluginUpdateStatus } from './types.js'; export { validatePluginUpdateArtifactOrigin, validatePluginUpdateServiceOrigin } from './plugin-update-artifact.js'; export type ArkmePluginUpdateChannel = 'stable' | 'next'; export interface PluginUpdateLogger { debug?(message: string, ...args: unknown[]): void; info?(message: string, ...args: unknown[]): void; warn?(message: string, ...args: unknown[]): void; } export interface ArkmePluginUpdateManagerOptions { enabled: boolean; channel: ArkmePluginUpdateChannel; updateServiceBaseUrl?: string; updateArtifactBaseUrl?: string; appVersion?: string; dshVersion?: string; intervalMs: number; stateDirectory: string; installedVersion?: string; fetchImpl?: typeof fetch; requestTimeoutMs?: number; now?: () => number; random?: () => number; logger?: PluginUpdateLogger; stateStore?: PluginUpdateStateStore; installRuntime?: PluginUpdateInstallRuntime; } export interface PluginUpdateInstallRuntime { dshHome: string; profileName: string; healthUrl: string; execPath?: string; execArgv?: string[]; dshBinPath?: string; restartArgv?: string[]; helperPath?: string; spawnUpdater?: (planPath: string, logPath: string) => Promise; requestShutdown?: () => void; supervisedExitCode?: number; supervisedPlanPath?: string; harnessLogPath?: string; requestProcessExit?: (code: number) => void; runProfilePluginAdd?: (plan: PluginUpdaterPlan) => Promise; runProfilePluginRemove?: (plan: PluginUpdaterPlan) => Promise; runProfilePluginRollback?: (plan: PluginUpdaterPlan) => Promise; disabledProfilePackages?: () => readonly string[]; preparePackageManager?: (dshHome: string, profileName: string) => void; allowLocalInstall?: boolean; } export declare class ArkmePluginUpdateError extends Error { readonly code: string; readonly retryable: boolean; constructor(code: string, message: string, retryable: boolean); } export declare function readInstalledPluginVersion(): string; export declare class ArkmePluginUpdateManager { private readonly enabled; private readonly channel; private readonly updateServiceOrigin; private readonly updateArtifactOrigin; private readonly appVersion; private readonly dshVersion; private readonly intervalMs; private readonly installedVersion; private readonly fetchImpl; private readonly requestTimeoutMs; private readonly now; private readonly random; private readonly logger; private readonly stateStore; private readonly stateDirectory; private readonly installStore; private readonly installRuntime; private timer; private inFlight; private installInFlight; private activeController; private latestManifest; private started; private disposed; constructor(options: ArkmePluginUpdateManagerOptions); start(): () => void; dispose(): void; status(options?: { refreshIfStale?: boolean; }): Promise; check(options?: { manual?: boolean; }): Promise; private checkOnce; acknowledge(snoozeHours?: number): Promise; installStatus(): Promise; install(): Promise; private installOnce; private runProfilePluginAdd; private runProfilePluginRemove; private runProfilePluginRollback; private readInstalledProfilePluginVersion; private installSupervisedProfilePlugin; private logInstallStage; private runProfilePluginCommand; private writeSupervisedRestartPlan; private performCheck; private fetchLatestMetadata; private project; private installationCapability; private spawnUpdater; private isDue; private schedule; private scheduleNext; } //# sourceMappingURL=plugin-update.d.ts.map