export type DepType = 'extraneous' | 'optional' | 'prod' | 'dev';
export interface DepSpecDict {
    [name: string]: string;
}
export interface DepExpandedDict {
    [name: string]: PackageExpanded;
}
export interface AbbreviatedVersion {
    readonly name: string;
    readonly version: string;
    readonly dist: {
        readonly shasum: string;
        readonly tarball: string;
        readonly integrity?: string;
    };
    readonly deprecated?: string;
    readonly dependencies?: {
        readonly [name: string]: string;
    };
    readonly optionalDependencies?: {
        readonly [name: string]: string;
    };
    readonly devDependencies?: {
        readonly [name: string]: string;
    };
    readonly bundleDependencies?: {
        readonly [name: string]: string;
    };
    readonly peerDependencies?: {
        readonly [name: string]: string;
    };
    readonly bin?: {
        readonly [key: string]: string;
    };
    readonly directories?: readonly string[];
    readonly engines?: {
        readonly [type: string]: string;
    };
    readonly _hasShrinkwrap?: boolean;
    readonly [key: string]: unknown;
}
export interface PackageJsonEnriched extends AbbreviatedVersion {
    full: string;
    __from: string[];
    shrinkwrap: any;
}
export interface HasDependencySpecs {
    readonly dependencies?: {
        readonly [name: string]: string;
    };
    readonly optionalDependencies?: {
        readonly [name: string]: string;
    };
    readonly devDependencies?: {
        readonly [name: string]: string;
    };
    readonly bundleDependencies?: {
        readonly [name: string]: string;
    };
}
export type NpmScope = 'prod' | 'dev' | 'unknown';
export interface PackageLabels {
    'npm:scope': NpmScope;
}
export interface PackageExpanded {
    name: string;
    version: string;
    dep: string;
    license: string;
    depType: DepType;
    hasDevDependencies: boolean;
    full: string;
    __from: string[];
    from?: string[];
    __devDependencies: DepSpecDict;
    __dependencies: DepSpecDict;
    __optionalDependencies: DepSpecDict;
    __bundleDependencies: DepSpecDict;
    __filename: string;
    devDependencies: DepExpandedDict;
    dependencies: DepExpandedDict;
    optionalDependencies: DepExpandedDict;
    bundleDependencies: DepExpandedDict;
    shrinkwrap: any;
    bundled: any;
    __used?: boolean;
    problems?: string[];
    extraneous?: boolean;
    labels?: PackageLabels;
}
export interface LogicalRoot extends PackageExpanded {
    numFileDependencies: number;
    numDependencies: number;
    unique: () => PackageExpanded;
    pluck: (path: string[], name: string, range: string) => false | PackageExpanded;
}
export interface Options {
    dev?: boolean;
    extraFields?: string[];
    noFromArrays?: boolean;
    file?: string;
    showNpmScope?: boolean;
}
