import { Config } from '../config/config';
import { BigNumber } from 'ethers';
import { Order } from '../order/types';
import { EstimateResponseApi, ExecutorConditions, FeesResponseApi, NetworkIdT3rn, USDPriceNetworkAssetValue } from './types';
import { AssetName } from './enums';
import { DynamoOrder, DynamoOrderStatusEntry } from '../dynamo/types';
export declare class PricerApi {
    config: Config;
    lastAssetPrice: Record<string, number>;
    lastAssetPriceTime: Record<string, number>;
    constructor(config: Config);
    fetchAssetPrice(asset: AssetName, network: NetworkIdT3rn): Promise<{
        usdValue: string;
    }>;
    fetchAssetPriceInUSD(asset: AssetName, networkId: NetworkIdT3rn, amount: BigNumber): Promise<number>;
    getFees(): Promise<FeesResponseApi>;
    getInsurance(): Promise<BigNumber>;
    estimate(fromAsset: AssetName, toAsset: AssetName, fromChain: NetworkIdT3rn, toChain: NetworkIdT3rn, amountWei: BigNumber, executorTipUSD?: number, slippagePercentage?: number): Promise<EstimateResponseApi>;
    fetchExecutorPendingExecutions(executor: string): Promise<Order[]>;
    fetchExecutorPendingClaims(executor: string): Promise<(string | DynamoOrderStatusEntry)[]>;
    /**
     * Fetches pending orders per executor from the pricer
     * @returns Array of orderIds or orders depending on groupedByDestinationAndMaxRewardDesc
     * @param groupedByDestinationAndMaxRewardDesc
     * @param currentNetworkNativeBalancesMap
     */
    fetchOrdersPendingPerExecutor(address: string, _groupedByDestinationAndMaxRewardDesc?: boolean, _currentNetworkNativeBalancesMap?: Record<string, string>): Promise<Order[]>;
    /**
     * Fetches pending orders from the pricer
     * @returns Array of orderIds or orders depending on groupedByDestinationAndMaxRewardDesc
     * @param groupedByDestinationAndMaxRewardDesc
     * @param currentNetworkNativeBalancesMap
     */
    fetchOrdersPending(_groupedByDestinationAndMaxRewardDesc?: boolean, _currentNetworkNativeBalancesMap?: Record<string, string>): Promise<Order[]>;
    fetchOrder(id: string): Promise<DynamoOrder>;
    fetchExecutorProcessingIntervals(): Promise<any>;
    fetchExecutorCount(executor: string): Promise<any>;
    fetchAllPrices(): Promise<Record<string, Record<string, USDPriceNetworkAssetValue>>>;
    fetchExecutorConditions(executor: string): Promise<ExecutorConditions[]>;
    getAccountBalances(address: string): Promise<{
        account: string;
        timestamp: number;
        balances: Record<string, Record<string, string>>;
    }>;
    insertAIxecutor(id: string): Promise<any>;
}
//# sourceMappingURL=pricer-api.d.ts.map