import type { Resolver, RemappedNpmPackagesGraphJson, Remapping, ResolvedNpmUserRemapping, ResolvedUserRemapping } from "./types.js";
import type { ImportResolutionError, NpmRootResolutionError, ProjectRootResolutionError } from "../../../../../types/solidity/errors.js";
import type { ResolvedFile, ProjectResolvedFile, NpmPackageResolvedFile } from "../../../../../types/solidity/resolved-file.js";
import type { Result } from "../../../../../types/utils.js";
import { type RemappingsReaderFunction } from "./remapped-npm-packages-graph.js";
export declare class ResolverImplementation implements Resolver {
    #private;
    /**
     * Creates a new resolver.
     *
     * @param projectRoot The absolute path to the Hardhat project root.
     * @param readUtf8File A function that reads a UTF-8 file.
     * @param remappingsReader Optional function to read remappings from packages.
     * @returns The resolver or the user remapping errors found.
     */
    static create(projectRoot: string, readUtf8File: (absPath: string) => Promise<string>, remappingsReader?: RemappingsReaderFunction): Promise<Resolver>;
    private constructor();
    resolveProjectFile(absoluteFilePath: string): Promise<Result<ProjectResolvedFile, ProjectRootResolutionError>>;
    resolveNpmDependencyFileAsRoot(npmModule: string): Promise<Result<{
        file: NpmPackageResolvedFile;
        remapping?: ResolvedNpmUserRemapping;
    }, NpmRootResolutionError>>;
    resolveImport(from: ResolvedFile, importPath: string): Promise<Result<{
        file: ResolvedFile;
        remapping?: Remapping | ResolvedUserRemapping;
    }, ImportResolutionError>>;
    toJSON(): {
        resolvedFileBySourceName: Record<string, ResolvedFile>;
        remappedNpmPackagesGraph: RemappedNpmPackagesGraphJson;
    };
}
//# sourceMappingURL=dependency-resolver.d.ts.map