import { BigNumber, Contract } from 'ethers';
import { CostResult, EstimateResponse, NetworkIdT3rn } from './types';
import { Config } from '../config/config';
import { OrderLifecycleCost } from '../types';
/**
 * Represents a utility for pricing assets, evaluating orders, and assessing deals for profitability.
 */
export declare class PricerLogic {
    private readonly config;
    constructor(_config: Config);
    /**
     * Calculates the price of asset A in terms of asset B, and ensures that the result
     * always has a fractional part of exactly 18 decimals.
     *
     * @param {BigNumber} priceA
     * @param {BigNumber} priceB
     * @return {BigNumber}
     */
    static calculatePriceAinBOn18Decimals(priceA: BigNumber, priceB: BigNumber, decimals?: number): BigNumber;
    /**
     * Takes a string representation of a price and converts it into a BigNumber format,
     * ensuring that the fractional part is extended or truncated to exactly 18 decimals.
     *
     * @param {string} price
     * @param {number} decimals - The number of decimals to use for the fractional part.
     * @return {BigNumber}
     */
    static parsePriceStringToBigNumberOn18Decimals(price: string, decimals?: number): BigNumber;
    parsePriceStringToBigNumberOn18DecimalsInfallible(price: string): BigNumber;
    /**
     * Fetches the price of an asset in USD from the network.
     */
    static getAssetPriceAinB(priceAssetToSpend: string, priceAssetToReceive: string): {
        priceAinB: BigNumber;
        priceAssetToSpend: string;
        priceAssetToReceive: string;
    };
    estimateGasLimitsForLifecycle(remoteOrderContract: Record<string, Contract>, networkId: NetworkIdT3rn, lifecycle: OrderLifecycleCost, amount: BigNumber, assetAddress: string): Promise<BigNumber>;
    estimateOrderCreateGasLimit(remoteOrderContract: Record<string, Contract>, networkId: NetworkIdT3rn, amount: BigNumber, assetAddress: string, address: string, txParams: {
        value?: BigNumber;
    }): Promise<BigNumber>;
    estimateOrderClaimedOrRefundedGasLimit(assetAddress: string): BigNumber;
    estimateTxConfirmationGasLimit(remoteOrderContract: Record<string, Contract>, networkId: NetworkIdT3rn, amount: BigNumber, assetAddress: string, address: string, orderId: string, nonce: number, sourceAccount: string, source: NetworkIdT3rn, txParams: {
        value?: BigNumber;
    }): Promise<BigNumber>;
    static estimateReceivedAmount(rewardAmountWei: BigNumber, priceOfRewardInAsset: BigNumber, decimals: number): BigNumber;
    static estimateSpentAmount(rewardAmountWei: BigNumber, priceOfRewardInAsset: BigNumber, decimals: number): BigNumber;
    /**
     * Calculates the bonuses and fees for a transaction and returns the final estimation result.
     */
    static convertBonusesAndFeesToUSD(initialAmountWei: BigNumber, estimatedReceivedAmountWei: BigNumber, totalCostInRewardWei: BigNumber, sourceGasFeeInRewardWei: BigNumber, executorFeeInRewardWei: BigNumber, protocolFeeInRewardWei: BigNumber, destinationGasFeeInFromRewardWei: BigNumber, fromAssetPriceUSD: any, toAssetPriceUSD: any, BRNorTRNPrice: string, currentBonusL3: BigNumber, isMainnet: boolean, avgOrderValueLastDayEth: number, priceOfNativeAssetSource: string, decimals?: number): EstimateResponse;
    static calculateUSD(valueWei: BigNumber, priceUSD: string, decimals: number): number;
    static calculateFromUSD(valueUSD: number, priceUSD: string, decimals: number): BigNumber;
    static sumUpTotalFees(destinationExecutionGasFeeWei: BigNumber, executorFeeWei?: BigNumber, protocolFeeWei?: BigNumber, gasPriceSpikeFactorPercent?: number): BigNumber;
    static calculateEIP1559FeeInWei({ gasPrice, lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasUsed, txType, }: {
        gasPrice: BigNumber;
        lastBaseFeePerGas: BigNumber;
        maxFeePerGas: BigNumber;
        maxPriorityFeePerGas: BigNumber;
        gasUsed: BigNumber;
        txType: number;
    }): BigNumber;
    /**
     * Calculates the cost of a transaction in terms of a given asset.
     * The cost is calculated by summing the gas fee and the executor fee (if available)
     * Returns the cost in Wei, Eth, Usd, and the asset, but also returns the gas fee and the executor fee separately.
     *
     * @param {BigNumber} amountWei
     * @param {string} asset
     * @param {BigNumber} priceAsset
     * @param {BigNumber} priceNative
     * @param totalGasFeeWei
     * @param protocolFeeWei
     * @param executorFeeSpreadOnAmount
     * @param tipAdjustmentWei
     * @returns {CostResult}
     */
    static calculateCostInAsset(amountWei: BigNumber, asset: string, priceAsset: BigNumber, priceNative: BigNumber, totalGasFeeWei: BigNumber, protocolFeeWei: BigNumber, executorFeeSpreadOnAmount: number, tipAdjustmentWei: BigNumber, // Flat tip adding to the transaction cost and profits of executor
    gasPriceSpikeFactorPercent?: number, decimals?: number): CostResult;
}
//# sourceMappingURL=pricer.logic.service.d.ts.map