import { JsonRpcProvider, type TransactionRequest } from 'ethers'; export interface GasPriceConfig { baseGasPrice?: bigint; multiplierPercent?: number; minGasPrice?: bigint; maxGasPrice?: bigint; } export declare function getOptimizedGasPrice(provider: JsonRpcProvider, config?: GasPriceConfig): Promise; export interface GasEstimateConfig { multiplier?: number; fallbackGasLimit?: bigint; allowFailure?: boolean; } export declare function estimateGasWithSafety(provider: JsonRpcProvider, txRequest: TransactionRequest, config?: GasEstimateConfig): Promise; export declare function estimateGasBatch(provider: JsonRpcProvider, txRequests: TransactionRequest[], config?: GasEstimateConfig): Promise; export interface BuildTransactionOptions { from: string; to?: string; data?: string; value?: bigint; nonce: number; gasPrice: bigint; gasLimit: bigint; chainId: number; type?: 0 | 2; } export declare function buildTransaction(options: BuildTransactionOptions): TransactionRequest; export interface CommonBundleConfig { gasLimit?: number; gasLimitMultiplier?: number; minGasPriceGwei?: number; maxGasPriceGwei?: number; txType?: 0 | 2; chainId?: number; } export declare function getGasLimit(config: CommonBundleConfig, defaultGas?: number): bigint; export declare function getGasPriceConfig(config: CommonBundleConfig): GasPriceConfig; export declare function getTxType(config: CommonBundleConfig): 0 | 2; export type LegacyGasFields = { type: 0; gasPrice: bigint; }; export type Eip1559GasFields = { type: 2; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; }; export type TxGasFields = LegacyGasFields | Eip1559GasFields; export declare function buildGasFields(txType: number, gasPrice: bigint): TxGasFields;