import { type IPackageMetadata, type IPackageJson, type IUnpublishedPackageMetadata } from "../npm.js"; import { type PackageVersion } from "../visitors/visitor.js"; export type PackageMetaData = IPackageMetadata | IUnpublishedPackageMetadata; export interface IPackageMetaDataProvider { getPackageMetadata(name: string): Promise; } export interface IPackageJsonProvider { getPackageJson: (...args: PackageVersion) => Promise; } export declare abstract class AbstractPackageProvider implements IPackageJsonProvider, IPackageMetaDataProvider { protected readonly _cache: Map; abstract getPackageMetadata(name: string): Promise; getPackageJson(name: string, version?: string | undefined): Promise; }