import { PackageManifest } from '@pnpm/types';
import { RegistryPackageSpec } from './parsePref';
export interface PackageMeta {
    'dist-tag': {
        [name: string]: string;
    };
    versions: {
        [name: string]: PackageInRegistry;
    };
}
export declare type PackageInRegistry = PackageManifest & {
    dist: {
        integrity?: string;
        shasum: string;
        tarball: string;
    };
};
declare const _default: (ctx: {
    fetch: (url: string, opts: {
        auth?: object | undefined;
    }) => Promise<{}>;
    metaCache: Map<string, object>;
    storePath: string;
    offline: boolean;
    preferOffline: boolean;
}, spec: RegistryPackageSpec, opts: {
    auth: object;
    preferredVersionSelector: {
        selector: string;
        type: "version" | "range" | "tag";
    } | undefined;
    registry: string;
    dryRun: boolean;
}) => Promise<{
    meta: PackageMeta;
    pickedPackage: PackageInRegistry | null;
}>;
export default _default;
