import { Decimal } from "@cosmjs/math"; import { GasPrice } from "./fee"; /** * Configuration for dynamic gas price queries from feemarket modules. */ export interface DynamicGasPriceConfig { /** Denomination to query gas price for (e.g., "uatom") */ readonly denom: string; /** Multiplier to apply to the queried gas price (e.g., 1.1 for 10% above base). Defaults to 1.3 */ readonly multiplier?: number; /** Minimum gas price to use as fallback if query fails and as a floor for the dynamic price */ readonly minGasPrice: GasPrice; /** Maximum gas price to cap at. If not provided, no maximum is enforced */ readonly maxGasPrice?: GasPrice; } export declare function isDynamicGasPriceConfig(config: GasPrice | DynamicGasPriceConfig): config is DynamicGasPriceConfig; /** * Multiplies a Decimal by a number multiplier. * This is needed because Decimal.multiply() only accepts integers. * * Uses decimal arithmetic to avoid floating point precision issues. */ export declare function multiplyDecimalByNumber(value: Decimal, multiplier: number, fractionalDigits: number): Decimal; /** * Checks if a chain supports dynamic gas pricing by querying feemarket endpoints. * * This is intended for optional verification during initialization or debugging, not for * automatic checks before every transaction. The implementation trusts user configuration * and handles failures gracefully by falling back to minGasPrice. */ export declare function checkDynamicGasPriceSupport(queryClient: { queryAbci(path: string, data: Uint8Array, height?: number): Promise<{ value: Uint8Array; }>; }, gasPriceDenom: string, chainId: string): Promise; /** * Queries the dynamic gas price from either Osmosis EIP-1559 or Skip's feemarket module. */ export declare function queryDynamicGasPrice(queryClient: { queryAbci(path: string, data: Uint8Array, height?: number): Promise<{ value: Uint8Array; }>; }, gasPriceDenom: string, chainId: string): Promise;