import type { VerificationProvider, BaseVerifyFunctionArgs, CreateBlockscoutOptions, ResolveConfigOptions } from "./types.js";
import type { Dispatcher, DispatcherOptions } from "@nomicfoundation/hardhat-utils/request";
import type { ChainDescriptorsConfig, VerificationProvidersConfig } from "hardhat/types/config";
export declare const BLOCKSCOUT_PROVIDER_NAME: keyof VerificationProvidersConfig;
export interface BlockscoutVerifyFunctionArgs extends BaseVerifyFunctionArgs {
    constructorArguments: string;
}
export declare class Blockscout implements VerificationProvider {
    readonly name: string;
    readonly url: string;
    readonly apiUrl: string;
    readonly dispatcherOrDispatcherOptions?: Dispatcher | DispatcherOptions;
    readonly pollingIntervalMs: number;
    static resolveConfig({ chainId, networkName, chainDescriptors, dispatcher, shouldUseCache, }: ResolveConfigOptions): Promise<CreateBlockscoutOptions>;
    static create({ blockExplorerConfig, dispatcher, }: CreateBlockscoutOptions): Promise<Blockscout>;
    static getSupportedChains(dispatcher?: Dispatcher, shouldUseCache?: boolean): Promise<ChainDescriptorsConfig>;
    constructor(blockscoutConfig: {
        name?: string;
        url: string;
        apiUrl: string;
        dispatcher?: Dispatcher;
    });
    getContractUrl(address: string): string;
    isVerified(address: string): Promise<boolean>;
    verify({ contractAddress, compilerInput, contractName, compilerVersion, constructorArguments, }: BlockscoutVerifyFunctionArgs): Promise<string>;
    pollVerificationStatus(guid: string, contractAddress: string, contractName: string): Promise<{
        success: boolean;
        message: string;
    }>;
}
//# sourceMappingURL=blockscout.d.ts.map