import type { MigrationSnapshot } from './app-migration-shared.js'; export declare function migrationEligible(version: string, local: boolean, platform: string, arch: string): boolean; export declare function migrationStateRoot(dshHome: string, environment: string): string; export declare function systemDownloadsDirectory(platform?: NodeJS.Platform): Promise; export declare function revealMigrationFile(path: string, platform?: NodeJS.Platform): Promise; export declare function openMigrationInstaller(path: string, platform?: NodeJS.Platform): Promise; interface Options { enabled: boolean; currentVersion: string; platform: string; architecture: string; stateDirectory: string; serviceOrigin: string; artifactOrigin: string; downloadsDirectory?: () => Promise; reveal?: (path: string) => Promise; install?: (path: string) => Promise; fetch?: typeof fetch; now?: () => number; } export declare class AppMigrationManager { private readonly options; private snapshot; private stored; private ready; private tail; private running; private abort; private installing; private disposed; private saveTail; private readonly enabled; private readonly now; private readonly fetcher; private readonly origin; private readonly artifactOrigin; constructor(options: Options); private exclusive; private get statePath(); private save; private safeURL; private target; private initialize; private init; private validCompleted; status(): Promise; check(manual?: boolean): Promise; private request; download(): Promise; private transfer; cancel(jobId?: string): Promise; dismiss(): Promise; private completedFile; reveal(jobId?: string): Promise; install(jobId?: string): Promise; dispose(): Promise; } export declare function publishMigrationFile(source: string, destination: string): Promise; export {}; //# sourceMappingURL=app-migration.d.ts.map