import type { ArtifactManager, GetArtifactByName, StringWithArtifactContractNamesAutocompletion } from "../../../types/artifacts.js"; export declare const BUILD_INFO_DIR_NAME = "build-info"; export declare const EDIT_DISTANCE_THRESHOLD = 3; /** * We cache the info that we read from the file system, otherwise we would * have to traverse the filesystem every time we need to get the an artifact. * * To keep our view of the filesystem consistent, we cache everything at the * same time, using this interface to organize the data. */ interface FsData { allArtifactPaths: ReadonlySet; allFullyQualifiedNames: ReadonlySet; bareNameToFullyQualifiedNameMap: Map>; fullyQualifiedNameToArtifactPath: Map; } export declare class ArtifactManagerImplementation implements ArtifactManager { #private; constructor(artifactsPath: string, readFsData?: () => Promise); readArtifact(contractNameOrFullyQualifiedName: ContractNameT): Promise>; getArtifactPath(contractNameOrFullyQualifiedName: string): Promise; artifactExists(contractNameOrFullyQualifiedName: string): Promise; getBuildInfoId(contractNameOrFullyQualifiedName: string): Promise; getAllFullyQualifiedNames(): Promise>; getAllArtifactPaths(): Promise>; getAllBuildInfoIds(): Promise>; getBuildInfoPath(buildInfoId: string): Promise; getBuildInfoOutputPath(buildInfoId: string): Promise; clearCache(): Promise; } /** * Returns the edit-distance between two given strings using Levenshtein distance. * * @param a First string being compared * @param b Second string being compared * @returns distance between the two strings (lower number == more similar) * @see https://github.com/gustf/js-levenshtein * @license MIT - https://github.com/gustf/js-levenshtein/blob/master/LICENSE */ export declare function editDistance(a: string, b: string): number; export {}; //# sourceMappingURL=artifact-manager.d.ts.map