import { Transport } from "viem";
import { providers } from "ethers";
import { BigNumber } from "../utils";
import { SVMProvider as SolanaProvider } from "../arch/svm";
import { EvmGasPriceEstimate, GasPriceEstimate, SvmGasPriceEstimate } from "./types";
import { EvmProvider } from "../arch/evm/types";
export interface GasPriceEstimateOptions {
    baseFeeMultiplier: BigNumber;
    priorityFeeMultiplier: BigNumber;
    legacyFallback: boolean;
    chainId: number;
    unsignedTx?: unknown;
    transport?: Transport;
}
export declare function getGasPriceEstimate(provider: EvmProvider, opts?: Partial<GasPriceEstimateOptions>): Promise<EvmGasPriceEstimate>;
export declare function getGasPriceEstimate(provider: SolanaProvider, opts?: Partial<GasPriceEstimateOptions>): Promise<SvmGasPriceEstimate>;
/**
 * Provide an estimate for the current gas price for a particular chain.
 * @param providerOrChainId A valid ethers provider or a chain ID.
 * @param transport An optional Viem Transport object for custom gas price retrieval.
 * @param unsignedTx Only used in Linea provider to estimate priority gas fee.
 * @returns An object of type GasPriceEstimate.
 */
export declare function _getViemGasPriceEstimate(providerOrChainId: providers.Provider | number, opts: GasPriceEstimateOptions): Promise<GasPriceEstimate>;
