import { Http } from '../../../util/http';
interface VersionsEndpointUnsupported {
    versionsEndpointSupported: false;
}
type PackageVersions = Map<string, string[]>;
interface VersionsEndpointData {
    versionsEndpointSupported: true;
    packageVersions: PackageVersions;
    syncedAt: Date;
    contentLength: number;
    /**
     * Last 33 characters of the response (32 hex digits + newline)
     */
    contentTail: string;
}
type VersionsEndpointResult = VersionsEndpointUnsupported | VersionsEndpointData;
export declare const memCache: Map<string, VersionsEndpointResult>;
export type VersionsResult = {
    type: 'success';
    versions: string[];
} | {
    type: 'not-supported';
} | {
    type: 'not-found';
};
export declare class VersionsEndpointCache {
    private readonly http;
    constructor(http: Http);
    private cacheRequests;
    /**
     * At any given time, there should only be one request for a given registryUrl.
     */
    private getCache;
    getVersions(registryUrl: string, packageName: string): Promise<VersionsResult>;
    private fullSync;
    private deltaSync;
}
export {};
