import { type UserConfig } from '../config/oat-config.js';
import type { CliLogger } from '../ui/logger.js';
export interface UpdateCheckCache {
    checkedAt?: string;
    latestVersion?: string;
    lastNotifiedAt?: string;
    lastNotifiedVersion?: string;
}
export interface UpdateNotifierOptions {
    currentVersion: string;
    home: string;
    interactive: boolean;
    json: boolean;
    argv: string[];
    env: NodeJS.ProcessEnv;
    logger: CliLogger;
}
export interface UpdateNotifierDependencies {
    now: () => Date;
    readFile: (path: string) => Promise<string>;
    atomicWriteJson: (path: string, data: unknown) => Promise<void>;
    readUserConfig: (userConfigDir: string) => Promise<UserConfig>;
    fetch: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
    createTimeoutSignal: (timeoutMs: number) => AbortSignal;
}
export declare function resolveUpdateAvailability(options: UpdateNotifierOptions, overrides?: Partial<UpdateNotifierDependencies>): Promise<string | null>;
export declare function maybeNotifyAboutUpdate(options: UpdateNotifierOptions, overrides?: Partial<UpdateNotifierDependencies>): Promise<void>;
//# sourceMappingURL=update-notifier.d.ts.map