import { LoggedPkg } from 'pnpm-logger';
import { Resolution, PackageSpec, PackageMeta } from '../resolve';
import { MemoizedFunc } from '../memoize';
import { Package } from '../types';
import { Got } from '../network/got';
export declare type FetchedPackage = {
    fetchingPkg: Promise<Package>;
    fetchingFiles: Promise<Boolean>;
    path: string;
    srcPath?: string;
    id: string;
    resolution: Resolution;
};
export default function fetch(spec: PackageSpec, options: {
    prefix: string;
    storePath: string;
    localRegistry: string;
    registry: string;
    metaCache: Map<string, PackageMeta>;
    got: Got;
    update?: boolean;
    shrinkwrapResolution?: Resolution;
    pkgId?: string;
    fetchingLocker: MemoizedFunc<Boolean>;
    loggedPkg: LoggedPkg;
    offline: boolean;
}): Promise<FetchedPackage>;
