import fixturify from 'fixturify'; import { PackageJson as BasePackageJson } from 'type-fest'; declare type PackageJson = BasePackageJson & { [name: string]: {}; }; interface ReadDirOpts { linkDeps?: boolean; linkDevDeps?: boolean; } export interface ProjectArgs { name?: string; version?: string; files?: fixturify.DirJSON; requestedRange?: string; } declare type ProjectCallback = (project: Project) => void; export declare class Project { pkg: PackageJson; files: fixturify.DirJSON; readonly isDependency = true; private _dependencies; private _devDependencies; private _baseDir; private _tmp; private requestedRange; private dependencyLinks; private linkIsDevDependency; private usingHardLinks; private resolutionCache; constructor(name?: string, version?: string, args?: Omit, projectCallback?: ProjectCallback); constructor(name?: string, version?: string, args?: Omit); constructor(name?: string, version?: string, projectCallback?: ProjectCallback); constructor(name?: string, args?: Omit, projectCallback?: ProjectCallback); constructor(args?: ProjectArgs, projectCallback?: ProjectCallback); get root(): void; set baseDir(dir: string); get baseDir(): string; private autoBaseDir; get name(): string; set name(value: string); get version(): string; set version(value: string); writeSync(): void; private writeLinkedPackage; private hardLinkContents; private hardLinkFile; static fromDir(root: string, opts?: ReadDirOpts): Project; private readSync; addDependency(name?: string, version?: string, args?: Omit, projectCallback?: ProjectCallback): Project; addDependency(name?: string, version?: string, projectCallback?: ProjectCallback): Project; addDependency(name?: string, args?: Omit, projectCallback?: ProjectCallback): Project; addDependency(args?: ProjectArgs, projectCallback?: ProjectCallback): Project; addDependency(args?: Project, projectCallback?: ProjectCallback): Project; private addDep; removeDependency(name: string): void; removeDevDependency(name: string): void; addDevDependency(name?: string, version?: string, args?: Omit, projectCallback?: ProjectCallback): Project; addDevDependency(name?: string, version?: string, projectCallback?: ProjectCallback): Project; addDevDependency(name?: string, args?: Omit, projectCallback?: ProjectCallback): Project; addDevDependency(args?: ProjectArgs, projectCallback?: ProjectCallback): Project; addDevDependency(args?: Project, projectCallback?: ProjectCallback): Project; linkDependency(name: string, opts: { baseDir: string; resolveName?: string; requestedRange?: string; } | { target: string; requestedRange?: string; }): void; linkDevDependency(name: string, opts: { baseDir: string; resolveName?: string; } | { target: string; }): void; dependencyProjects(): Project[]; devDependencyProjects(): Project[]; private pkgJSONWithDeps; clone(): Project; dispose(): void; private depsToObject; } export {};