import { BigNumber, providers } from 'ethers';
import { IMessageRecipient } from '@hyperlane-xyz/core';
import { Address } from '@hyperlane-xyz/utils';
export declare const DEFAULT_CALL_GAS_FALLBACK: BigNumber;
export interface EstimateHandleGasParams {
    origin: number;
    sender: string;
    body: string;
    mailbox: Address;
    recipient: IMessageRecipient;
}
export interface EstimateCallGasParams {
    provider: providers.Provider;
    to: Address;
    data: string;
    value?: BigNumber;
    fallback?: BigNumber;
}
/**
 * Estimates gas for calling handle() on a recipient contract.
 * Returns null if estimation fails (e.g., call would revert).
 */
export declare function estimateHandleGasForRecipient(params: EstimateHandleGasParams): Promise<BigNumber | null>;
/**
 * Estimates gas for a single contract call.
 * Returns fallback value (default 50k) if estimation fails.
 */
export declare function estimateCallGas(params: EstimateCallGasParams): Promise<BigNumber>;
//# sourceMappingURL=gas.d.ts.map