export type ServiceUpdateStatus = {
    enabled: boolean;
    updateAvailable: boolean;
    updating: boolean;
    installedVersion: string | null;
    latestVersion: string | null;
};
export type ServiceUpdateController = {
    getStatus: () => Promise<ServiceUpdateStatus>;
    requestUpdate: () => Promise<ServiceUpdateStatus>;
};
export type ServiceUpdateControllerOptions = {
    root: string;
    env?: NodeJS.ProcessEnv;
    homeDir?: string;
    now?: () => number;
    npxPath?: string;
    fetchImpl?: typeof fetch;
    cacheTtlMs?: number;
    registryTimeoutMs?: number;
    spawnUpdateProcess?: (command: string, args: string[], options: {
        env: NodeJS.ProcessEnv;
    }) => Promise<void>;
};
export declare const comparePackageVersions: (left: string, right: string) => number;
export declare const createServiceUpdateController: (options: ServiceUpdateControllerOptions) => ServiceUpdateController;
