import { HardhatRuntimeEnvironment, Libraries } from "hardhat/types";
declare class LinkerHelper {
    private _hre;
    constructor(_hre: HardhatRuntimeEnvironment);
    isBytecodeNeedsLinking(bytecode: string): boolean;
    tryLinkBytecode(contractName: string, bytecode: string, libraries: Libraries): Promise<string>;
    private _mustGetNeededLibrary;
    private _validateMatchedNeededLibraries;
    private _findMissingLibraries;
    private _validateLibrariesToLink;
    private _cleanNeededLibraries;
    /**
     * The address of the linked library can be extracted like this: bytecode.slice(prefixLength + 2, suffixStart + 2)
     */
    private _isLinkedLibrary;
    private _linkBytecode;
    private _getOrDeployLibrary;
    private _mustGetContractArtifact;
    private _mustGetLibraryArtifact;
    private _getContractFromStorage;
}
export declare let Linker: LinkerHelper | null;
export declare function createLinker(hre: HardhatRuntimeEnvironment): void;
export {};
//# sourceMappingURL=Linker.d.ts.map