import { Logger } from 'pino';
import { Address } from '@hyperlane-xyz/utils';
import { MultiProvider } from '../../providers/MultiProvider.js';
import { ContractVerificationStatus } from '../../token/types.js';
import { ChainMap, ChainName } from '../../types.js';
import { BaseContractVerifier } from './BaseContractVerifier.js';
import { BuildArtifact, CompilerOptions, ContractVerificationInput, SolidityStandardJsonInput } from './types.js';
export declare class ContractVerifier extends BaseContractVerifier {
    protected readonly multiProvider: MultiProvider;
    protected readonly apiKeys: ChainMap<string>;
    protected logger: import("pino").default.Logger<never>;
    protected readonly compilerOptions: CompilerOptions;
    constructor(multiProvider: MultiProvider, apiKeys: ChainMap<string>, buildArtifact: BuildArtifact, licenseType: CompilerOptions['licenseType']);
    protected verify(chain: ChainName, input: ContractVerificationInput, verificationLogger: Logger): Promise<void>;
    private verifyImplementation;
    private verifyProxy;
    private checkStatus;
    protected prepareImplementationData(sourceName: string, input: ContractVerificationInput, filteredStandardInputJson: SolidityStandardJsonInput): {
        codeformat: "solidity-standard-json-input";
        compilerversion: string;
        licenseType?: import("../../block-explorer/etherscan.js").ExplorerLicenseType;
        zksolcversion?: string;
        sourceCode: SolidityStandardJsonInput;
        contractname: string;
        contractaddress: string;
        constructorArguements: string;
    };
    getContractVerificationStatus(chain: ChainName, address: Address, verificationLogger?: Logger): Promise<ContractVerificationStatus>;
}
//# sourceMappingURL=ContractVerifier.d.ts.map