/**
 * Startup-owned runtime package update detection and cache state.
 *
 * Reads a small local cache immediately, optionally refreshes it in the
 * background, and returns the update state for this run.
 */
interface UpdateCacheFile {
    latestVersion: string;
    lastCheckedAt: string;
}
export interface AvailableUpdate {
    kind: 'available';
    currentVersion: string;
    latestVersion: string;
    instruction: string;
    command?: string;
    lastCheckedAt: string;
}
export interface NoUpdate {
    kind: 'none';
    currentVersion: string;
    lastCheckedAt?: string;
}
export type UpdateStatus = AvailableUpdate | NoUpdate;
export interface ResolveUpdateOptions {
    cachePath?: string;
    currentVersion?: string;
    now?: Date;
    offline?: boolean;
    skipCheck?: boolean;
    packageName?: string;
    registryUrl?: string;
}
interface ResolveUpdateDeps {
    fetchLatestVersion?: (registryUrl: string) => Promise<string | undefined>;
    scheduleBackgroundTask?: (task: () => Promise<void>) => void;
}
export declare function resolveStartupUpdateStatus(options?: ResolveUpdateOptions, deps?: ResolveUpdateDeps): Promise<UpdateStatus>;
export declare function shouldRefreshUpdateCache(cache: UpdateCacheFile | undefined, now: Date, ttlMs?: number): boolean;
export declare function getUpdateStatusFromCache(cache: UpdateCacheFile | undefined, options: {
    currentVersion: string;
    packageName?: string;
}): UpdateStatus;
export {};
//# sourceMappingURL=update-manager.d.ts.map