/**
 * npm Registry Client
 * Fetches package metadata from npm registry
 */
export interface PackageVersion {
    name: string;
    version: string;
    dependencies?: Record<string, string>;
    devDependencies?: Record<string, string>;
    peerDependencies?: Record<string, string>;
    optionalDependencies?: Record<string, string>;
    dist: {
        tarball: string;
        shasum: string;
        integrity?: string;
    };
    main?: string;
    module?: string;
    exports?: Record<string, unknown>;
    bin?: Record<string, string> | string;
}
export interface PackageManifest {
    name: string;
    'dist-tags': {
        latest: string;
        [tag: string]: string;
    };
    versions: Record<string, PackageVersion>;
    time?: Record<string, string>;
}
export interface RegistryOptions {
    registry?: string;
    cache?: Map<string, PackageManifest>;
}
export declare class Registry {
    private registryUrl;
    private cache;
    constructor(options?: RegistryOptions);
    /**
     * Fetch package manifest (all versions metadata)
     */
    getPackageManifest(packageName: string): Promise<PackageManifest>;
    /**
     * Get specific version metadata
     */
    getPackageVersion(packageName: string, version: string): Promise<PackageVersion>;
    /**
     * Get latest version number
     */
    getLatestVersion(packageName: string): Promise<string>;
    /**
     * Get all available versions
     */
    getVersions(packageName: string): Promise<string[]>;
    /**
     * Download tarball as ArrayBuffer
     */
    downloadTarball(tarballUrl: string): Promise<ArrayBuffer>;
    /**
     * Clear the cache
     */
    clearCache(): void;
}
export declare const registry: Registry;
export default Registry;
//# sourceMappingURL=registry.d.ts.map