import type { ArkmePluginUpdateInstallSnapshot, ArkmePluginUpdateStatus } from '../types.js'; export interface ArkmePluginUpdateStoreSnapshot { checked: boolean; busy: boolean; /** Only the install command is pending, not a version check or acknowledgement. */ installPending?: boolean; status?: ArkmePluginUpdateStatus; install?: ArkmePluginUpdateInstallSnapshot; error: string; installError: string; /** Missing progress is not proof that the Host has failed or stopped installing. */ installWarning?: string; installStatusError?: string; installStatusChecking?: boolean; installStatusFeedback?: string; } type UpdateCall = (operation: 'plugin.update.status' | 'plugin.update.check' | 'plugin.update.acknowledge' | 'plugin.update.install' | 'plugin.update.install-status', params?: Record, signal?: AbortSignal) => Promise; export declare class ArkmePluginUpdateStore { private readonly listeners; private readonly call; private snapshot; private pending; private pendingInstall; private pendingStatusCheck; private readonly cancelQueries; private requestedTargetVersion; private installStatusFailures; private interval; private followUp; private installPoll; private installMonitor; private installMonitorDeadline; private installProgressKey; private installRevision; private installReadSequence; private lifecycleRevision; private stopped; private pendingPreviousJobId; private followUpCount; private running; private readonly onVisibilityChange; constructor(call?: UpdateCall); subscribe: (listener: () => void) => (() => void); getSnapshot: () => ArkmePluginUpdateStoreSnapshot; start(): () => void; stop(): void; refresh(manual?: boolean): Promise; acknowledge(snoozeHours?: number): Promise; install(): Promise; /** Recovery checks are read-only, bounded and shared across all UI entries. */ checkInstallStatus(): Promise; refreshInstallStatus(reloadOnSuccess?: boolean): Promise; private releaseInstallCommand; private reconcileRunningVersion; private query; private resetInstallMonitor; private monitorInstall; private monitorInstallProgress; private scheduleFollowUp; private setSnapshot; private scheduleInstallPoll; } export declare const arkmePluginUpdateStore: ArkmePluginUpdateStore; export {}; //# sourceMappingURL=plugin-update-store.d.ts.map