export type UpdateCache = {
    checkedAt: number | null;
    latest: string | null;
    current: string | null;
    runtimeVersion: string | null;
    invokerVersion: string | null;
    updateAvailable: boolean;
    notifiedAt: number | null;
};
export declare function isValidNpmPackageName(raw: string): boolean;
export declare function resolveNpmPackageNameOverride(params: Readonly<{
    envValue: string | undefined;
    fallback: string;
}>): string;
export declare function acquireSingleFlightLock(params: Readonly<{
    lockPath: string;
    nowMs: number;
    ttlMs: number;
    pid: number;
}>): boolean;
export declare function normalizeSemverBase(raw: string): string | null;
export declare function computePreviewVersion(params: Readonly<{
    baseVersion: string;
    runNumber: number;
}>): string;
export declare function compareVersions(a: string, b: string): number;
export declare function shouldNotifyUpdate(params: Readonly<{
    isTTY: boolean;
    cmd: string;
    updateAvailable: boolean;
    latest: string | null;
    notifiedAt: number | null;
    notifyIntervalMs: number;
    nowMs?: number;
}>): boolean;
export declare function readUpdateCache(path: string): UpdateCache | null;
export declare function writeUpdateCache(path: string, cache: UpdateCache): void;
export declare function resolveSpawnDetachedNodeInvocation(params: Readonly<{
    execPath: string;
    script: string;
    args: string[];
}>): {
    file: string;
    args: string[];
    isRuntime: boolean;
};
export declare function spawnDetachedNode(params: Readonly<{
    script: string;
    args: string[];
    cwd: string;
    env: NodeJS.ProcessEnv;
}>): void;
export declare function readNpmDistTagVersion(params: Readonly<{
    packageName: string;
    distTag: string;
    cwd: string;
    env: NodeJS.ProcessEnv;
}>): string | null;
export declare function installRuntimeFromNpm(params: Readonly<{
    runtimeDir: string;
    spec: string;
    cwd: string;
    env: NodeJS.ProcessEnv;
}>): {
    ok: true;
} | {
    ok: false;
    errorMessage: string;
};
export declare function formatUpdateNotice(params: Readonly<{
    toolName: string;
    from: string;
    to: string;
    updateCommand: string;
}>): string;
//# sourceMappingURL=index.d.ts.map