import { PackageMeta } from 'package-store';
import { Log } from 'pnpm-logger';
export declare type PnpmOptions = {
    rawNpmConfig?: Object;
    global?: boolean;
    prefix?: string;
    bin?: string;
    ignoreScripts?: boolean;
    save?: boolean;
    saveProd?: boolean;
    saveDev?: boolean;
    saveOptional?: boolean;
    production?: boolean;
    fetchRetries?: number;
    fetchRetryFactor?: number;
    fetchRetryMintimeout?: number;
    fetchRetryMaxtimeout?: number;
    saveExact?: boolean;
    force?: boolean;
    depth?: number;
    engineStrict?: boolean;
    nodeVersion?: string;
    offline?: boolean;
    registry?: string;
    optional?: boolean;
    proxy?: string;
    httpsProxy?: string;
    localAddress?: string;
    cert?: string;
    key?: string;
    ca?: string;
    strictSsl?: boolean;
    userAgent?: string;
    tag?: string;
    metaCache?: Map<string, PackageMeta>;
    alwaysAuth?: boolean;
    storePath?: string;
    store?: string;
    verifyStoreIntegrity?: boolean;
    networkConcurrency?: number;
    fetchingConcurrency?: number;
    lockStaleDuration?: number;
    lock?: boolean;
    childConcurrency?: number;
    repeatInstallDepth?: number;
    independentLeaves?: boolean;
    update?: boolean;
    reporter?: (logObj: Log) => void;
    packageManager?: {
        name: string;
        version: string;
    };
};
export declare type StrictPnpmOptions = PnpmOptions & {
    rawNpmConfig: Object;
    global: boolean;
    prefix: string;
    bin: string;
    ignoreScripts: boolean;
    save: boolean;
    saveProd: boolean;
    saveDev: boolean;
    saveOptional: boolean;
    production: boolean;
    fetchRetries: number;
    fetchRetryFactor: number;
    fetchRetryMintimeout: number;
    fetchRetryMaxtimeout: number;
    saveExact: boolean;
    force: boolean;
    depth: number;
    engineStrict: boolean;
    nodeVersion: string;
    offline: boolean;
    registry: string;
    optional: boolean;
    proxy?: string;
    httpsProxy?: string;
    localAddress?: string;
    cert?: string;
    key?: string;
    ca?: string;
    strictSsl: boolean;
    userAgent: string;
    tag: string;
    metaCache: Map<string, PackageMeta>;
    alwaysAuth: boolean;
    store: string;
    verifyStoreIntegrity: boolean;
    networkConcurrency: number;
    fetchingConcurrency: number;
    lockStaleDuration: number;
    lock: boolean;
    childConcurrency: number;
    repeatInstallDepth: number;
    independentLeaves: boolean;
    locks: string;
    update: boolean;
    packageManager: {
        name: string;
        version: string;
    };
};
export declare type Dependencies = {
    [name: string]: string;
};
export declare type PackageBin = string | {
    [name: string]: string;
};
export declare type Package = {
    name: string;
    version: string;
    private?: boolean;
    bin?: PackageBin;
    directories?: {
        bin?: string;
    };
    dependencies?: Dependencies;
    devDependencies?: Dependencies;
    optionalDependencies?: Dependencies;
    peerDependencies?: Dependencies;
    bundleDependencies?: string[];
    bundledDependencies?: string[];
    scripts?: {
        [name: string]: string;
    };
    config?: Object;
};
