import { Datasource } from '../datasource';
import type { GetReleasesConfig, ReleaseResult } from '../types';
type PackageReleases = Map<string, string[]>;
interface RegistryCache {
    lastSync: Date;
    packageReleases: PackageReleases;
    contentLength: number;
    isSupported: boolean;
    registryUrl: string;
}
export declare const memCache: Map<string, RegistryCache>;
export declare class VersionsDatasource extends Datasource {
    readonly id: string;
    constructor(id: string);
    getRegistryCache(registryUrl: string): RegistryCache;
    getReleases({ registryUrl, packageName, }: GetReleasesConfig): Promise<ReleaseResult | null>;
    private updatePackageReleases;
    updateRubyGemsVersions(regCache: RegistryCache): Promise<void>;
    private updateRubyGemsVersionsPromise;
    syncVersions(regCache: RegistryCache): Promise<void>;
}
export {};
