import { PnpmOptions, Dependencies } from '../types';
import { InstalledPackage } from '../install';
import { Got } from '../network/got';
import { StoreJson } from '../fs/storeJsonController';
export declare type PackageInstallationResult = {
    path: string;
    pkgId: string;
};
export declare type CachedPromises<T> = {
    [name: string]: Promise<T>;
};
export declare type InstalledPackages = {
    [name: string]: InstalledPackage;
};
export declare type InstallContext = {
    installs: InstalledPackages;
    piq?: PackageInstallationResult[];
    got: Got;
    builds: CachedPromises<InstalledPackage[]>;
    fetches: CachedPromises<void>;
    storeJson: StoreJson;
};
export declare function install(maybeOpts?: PnpmOptions): Promise<void>;
/**
 * Perform installation.
 *
 * @example
 *     install({'lodash': '1.0.0', 'foo': '^2.1.0' }, { silent: true })
 */
export declare function installPkgs(fuzzyDeps: string[] | Dependencies, maybeOpts?: PnpmOptions): Promise<void>;
