///
import { RepoMappings } from './repository';
/**
* Class that provides methods for resolving Bazel runfiles.
*/
export declare class Runfiles {
private _env;
manifest: Map | undefined;
runfilesDir: string | undefined;
/**
* If the environment gives us enough hints, we can know the workspace name
*/
workspace: string | undefined;
/**
* If the environment gives us enough hints, we can know the package path
*/
package: string | undefined;
/**
* If the environment has repo mappings, we can use them to resolve repo relative paths.
*/
repoMappings: RepoMappings | undefined;
constructor(_env?: NodeJS.ProcessEnv);
/** Resolves the given path from the runfile manifest. */
private _resolveFromManifest;
/**
* The runfiles manifest maps from short_path
* https://docs.bazel.build/versions/main/skylark/lib/File.html#short_path
* to the actual location on disk where the file can be read.
*
* In a sandboxed execution, it does not exist. In that case, runfiles must be
* resolved from a symlink tree under the runfiles dir.
* See https://github.com/bazelbuild/bazel/issues/3726
*/
loadRunfilesManifest(manifestPath: string): Map;
parseRepoMapping(runfilesDir: string): RepoMappings | undefined;
/** Resolves the given module path. */
resolve(modulePath: string, sourceRepo?: string): string;
/** Resolves the given path relative to the current Bazel workspace. */
resolveWorkspaceRelative(modulePath: string): string;
/** Resolves the given path relative to the current Bazel package. */
resolvePackageRelative(modulePath: string): string;
/**
* Patches the default Node.js resolution to support runfile resolution.
* @deprecated Use the runfile helpers directly instead.
**/
patchRequire(): void;
/** Helper for resolving a given module recursively in the runfiles. */
private _resolve;
}