import objectPath from 'object-path';
type PkgData = {
    name: string;
    dependencies: Record<string, string>;
    devDependencies: Record<string, string>;
    peerDependencies: Record<string, string>;
};
/**
 * Lazy-loading proxy for package.json. A subset of properties are available,
 * and a static method
 * `PackageJson.lookup(package: PackageJson, dotPath: string)`
 * exists for looking up other arbitrary properties.
 *
 * This speeds up dependency gathering; it won't be necessary to read all
 * package files from disk.
 */
export default class PackageJson {
    json: objectPath.ObjectPathBound<PkgData>;
    lookup<T>(dotPath: string, fallback?: T): T;
    get dependencies(): Record<string, string>;
    get devDependencies(): Record<string, string>;
    get name(): string;
    get peerDependencies(): Record<string, string>;
    private modulePath;
    constructor(modulePath: string);
    private getJson;
}
export {};
