import type { EdrNetworkAccountConfig, EdrNetworkAccountsConfig, ChainDescriptorsConfig, EdrNetworkConfig, EdrNetworkForkingConfig, EdrNetworkMempoolConfig, EdrNetworkMiningConfig } from "../../../../../types/config.js";
import type { ChainType } from "../../../../../types/network.js";
import type { GasMeasurement } from "../../../gas-analytics/types.js";
import type { OpHardforkName } from "../types/hardfork.js";
import type { IntervalRange, ChainOverride, ForkConfig, GasReport, L1Hardfork, OpHardfork } from "@nomicfoundation/edr";
import { GasEstimationMode, MineOrdering } from "@nomicfoundation/edr";
import { L1HardforkName } from "../types/hardfork.js";
/**
 * Returns Hardhat's name for an EDR hardfork.
 */
export declare function edrL1HardforkToHardhatL1HardforkName(hardfork: L1Hardfork): L1HardforkName;
/**
 * Returns Hardhat's name for an EDR OP hardfork. See
 * {@link edrL1HardforkToHardhatL1HardforkName}.
 */
export declare function edrOpHardforkToHardhatOpHardforkName(hardfork: OpHardfork): OpHardforkName;
export declare function hardhatMiningIntervalToEdrMiningInterval(config: EdrNetworkMiningConfig["interval"]): bigint | IntervalRange | undefined;
export declare function hardhatMempoolOrderToEdrMineOrdering(mempoolOrder: EdrNetworkMempoolConfig["order"]): MineOrdering;
export declare function hardhatGasEstimationModeToEdrGasEstimationMode(gasEstimationMode: EdrNetworkConfig["gasEstimationMode"]): GasEstimationMode;
export declare function hardhatAccountsToEdrOwnedAccounts(accounts: EdrNetworkAccountsConfig): Promise<Array<{
    secretKey: string;
    balance: bigint;
}>>;
export declare function normalizeEdrNetworkAccountsConfig(accounts: EdrNetworkAccountsConfig): Promise<EdrNetworkAccountConfig[]>;
export declare function hardhatChainDescriptorsToEdrChainOverrides(chainDescriptors: ChainDescriptorsConfig, chainType: ChainType): ChainOverride[];
export declare function hardhatForkingConfigToEdrForkConfig(forkingConfig: EdrNetworkForkingConfig | undefined, chainDescriptors: ChainDescriptorsConfig, chainType: ChainType): Promise<ForkConfig | undefined>;
/**
 * Resolves the default transaction gas limit used by RPC call and
 * transaction requests that omit a `gas` field. This includes
 * `eth_estimateGas`: when the request doesn't specify `gas`, EDR uses this
 * value as the upper bound of the estimation, so it should be the most gas a
 * transaction can use.
 *
 * From L1's Amsterdam hardfork onwards, EIP-8037 limits `transactionGasCap`
 * to execution gas, and a transaction can use up to the minimum of the block
 * gas limit or 2^32 - 1, no matter what `transactionGasCap` is.
 *
 * Before Amsterdam, when `transactionGasCap` is a bigint, that value wins.
 * When it is `false`, the per-transaction cap is disabled and the block gas
 * limit is used. When it is undefined, the hardfork-specific default applies:
 * from L1's Osaka hardfork onwards, the EIP-7825 transaction gas cap of
 * 16,777,216; otherwise the block gas limit.
 */
export declare function resolveDefaultTransactionGasLimit(params: {
    chainType: ChainType;
    hardfork: string;
    blockGasLimit: bigint;
    transactionGasCap: bigint | false | undefined;
}): bigint;
/**
 * Converts EDR's nested GasReport structure into a flat array of gas entries.
 * Filters out reverted transactions.
 */
export declare function edrGasReportToHardhatGasMeasurements(gasReport: GasReport, excludedContractFqns?: string[]): GasMeasurement[];
//# sourceMappingURL=convert-to-edr.d.ts.map