import type { WalletClient } from '@nomicfoundation/hardhat-viem/types';
import type { HardhatRuntimeEnvironment } from 'hardhat/types/hre';
import type { NetworkConnection } from 'hardhat/types/network';
import type { EngineBinding } from '../engine/binding.js';
/**
 * Transaction parameters the viem binding applies to every transaction it sends, mirroring
 * `@nomicfoundation/hardhat-viem`'s conventions.
 */
export interface ViemExecOptions {
    value?: bigint;
    gas?: bigint;
    gasPrice?: bigint;
    maxFeePerGas?: bigint;
    maxPriorityFeePerGas?: bigint;
    timeout?: number;
    pollingInterval?: number;
}
/**
 * Builds the client-neutral engine binding for the viem API. All transactions are signed and
 * broadcast through the given wallet client, so viem local accounts (private key, mnemonic, KMS,
 * hardware) are supported natively — viem's own `sendTransaction` branches on the account type.
 */
export declare function makeViemBinding(hre: HardhatRuntimeEnvironment, connection: NetworkConnection, walletClient: WalletClient | undefined, exec: ViemExecOptions): EngineBinding;
//# sourceMappingURL=viem-binding.d.ts.map