import { structUtils } from '@yarnpkg/core';
import { NormalisedPkgs } from '../types';
import { PkgNode } from '../util';
export type ParseDescriptor = typeof structUtils.parseDescriptor;
export type ParseRange = typeof structUtils.parseRange;
export type YarnLockFileKeyNormalizer = (fullDescriptor: string) => Set<string>;
export declare const yarnLockFileKeyNormalizer: (parseDescriptor: ParseDescriptor, parseRange: ParseRange) => YarnLockFileKeyNormalizer;
export declare const getYarnLockV2ChildNode: (name: string, depInfo: {
    version: string;
    isDev: boolean;
    alias?: {
        aliasName: string;
        aliasTargetDepName: string;
        semver: string;
        version: string;
    };
}, pkgs: NormalisedPkgs, strictOutOfSync: boolean, includeOptionalDeps: boolean, resolutions: Record<string, string>, parentNode: PkgNode) => {
    alias?: {
        version: string;
        aliasName: string;
        aliasTargetDepName: string;
        semver: string;
    } | undefined;
    id: string;
    name: string;
    version: string;
    dependencies: {};
    isDev: boolean;
    missingLockFileEntry: boolean;
} | {
    alias?: {
        version: string;
        aliasName: string;
        aliasTargetDepName: string;
        semver: string;
    } | undefined;
    id: string;
    name: string;
    version: string;
    dependencies: {
        [x: string]: {
            version: string;
            isDev: boolean;
            isOptional?: boolean;
        };
    };
    isDev: boolean;
};
