import { SourceFile } from './source-file'; import { PackageJsonFile } from './package-json-file'; import { TSConfigFile } from './tsconfig-json-file'; import { JSConfigFile } from './jsconfig-json-file'; import { PathResult } from './paths'; import { LookupContext } from './lookup'; import { LineageOptions } from './walk'; import { Package, Workspace } from './workspace'; declare class PackageFilesCache { #private; exactSourceFile(filePath: string): Promise; sourceFile(filePath: string, context: LookupContext): Promise; packageJson(filePath: string): Promise; tsconfigJson(filePath: string): Promise; jsconfigJson(filePath: string): Promise; } declare class PackageFiles { packageJson?: PackageJsonFile; tsconfigJson?: TSConfigFile; jsconfigJson?: JSConfigFile; satisfyFromDirPath(dirPath: string, cache: PackageFilesCache): Promise; get satisfied(): boolean; } export type RawDependencySource = 'require' | 'import'; export type RawDependency = { importPath: string; source: RawDependencySource; }; type WorkspaceRootPackageJsonFileLocalDependency = { kind: 'workspace-root-package-json-file'; importPath: string; sourceFile: SourceFile; packageJsonFile: PackageJsonFile; }; type WorkspaceRootTSConfigFileLocalDependency = { kind: 'workspace-root-tsconfig-file'; importPath: string; sourceFile: SourceFile; configFile: TSConfigFile; }; type WorkspaceRootLockfileLocalDependency = { kind: 'workspace-root-lockfile'; importPath: string; sourceFile: SourceFile; }; type WorkspaceRootConfigFileLocalDependency = { kind: 'workspace-root-config-file'; importPath: string; sourceFile: SourceFile; }; type NearestPackageJsonFileLocalDependency = { kind: 'nearest-package-json-file'; importPath: string; sourceFile: SourceFile; packageJsonFile: PackageJsonFile; }; type NearestTSConfigFileLocalDependency = { kind: 'nearest-tsconfig-file'; importPath: string; sourceFile: SourceFile; configFile: TSConfigFile; }; type SupportingTSConfigFileLocalDependency = { kind: 'supporting-tsconfig-file'; importPath: string; sourceFile: SourceFile; configFile: TSConfigFile; }; type SupportingTSConfigResolvedPathLocalDependency = { kind: 'supporting-tsconfig-resolved-path'; importPath: string; sourceFile: SourceFile; configFile: TSConfigFile; pathResult: PathResult; }; type SupportingTSConfigBaseUrlRelativePathLocalDependency = { kind: 'supporting-tsconfig-baseurl-relative-path'; importPath: string; configFile: TSConfigFile; sourceFile: SourceFile; }; type RelativePathLocalDependency = { kind: 'relative-path'; importPath: string; sourceFile: SourceFile; }; type WorkspaceNeighborLocalDependency = { kind: 'workspace-neighbor'; neighbor: Package; importPath: string; sourceFile: SourceFile; }; type LocalDependency = WorkspaceRootPackageJsonFileLocalDependency | WorkspaceRootTSConfigFileLocalDependency | WorkspaceRootLockfileLocalDependency | WorkspaceRootConfigFileLocalDependency | NearestPackageJsonFileLocalDependency | NearestTSConfigFileLocalDependency | SupportingTSConfigFileLocalDependency | SupportingTSConfigResolvedPathLocalDependency | SupportingTSConfigBaseUrlRelativePathLocalDependency | RelativePathLocalDependency | WorkspaceNeighborLocalDependency; type MissingDependency = { importPath: string; filePath: string; }; type ExternalDependency = { importPath: string; }; type NeighborDependencies = { depends: Package[]; references: Package[]; }; export type Dependencies = { external: ExternalDependency[]; missing: MissingDependency[]; local: LocalDependency[]; neighbors: NeighborDependencies; }; export interface PackageFilesResolverOptions { workspace?: Workspace; restricted?: boolean; } export declare class PackageFilesResolver { cache: PackageFilesCache; workspace?: Workspace; restricted: boolean; constructor(options?: PackageFilesResolverOptions); loadPackageFiles(filePath: string, options?: LineageOptions): Promise; private resolveSourceFile; resolveDependenciesForFilePath(filePath: string, dependencies: RawDependency[]): Promise; } export {};