import { IBlockchainExplorer } from '../../explorer/IBlockchainExplorer'; import { Web3Client } from '../../clients/Web3Client'; import { IToken } from '../../models/IToken'; import { TAddress } from '../../models/TAddress'; import { TResultAsync } from '../../models/TResult'; import { IOracle, IOracleOptions, IOracleResult, ISwapOptions } from '../TokenOracles/IOracle'; export declare class AmmV2PriceQuote implements IOracle { client: Web3Client; explorer: IBlockchainExplorer; private exchange; private tokensService; private pairService; private logger; constructor(client: Web3Client, explorer: IBlockchainExplorer); getPrice(token: IToken, opts?: IOracleOptions): TResultAsync; getRoute(token: IToken, opts?: ISwapOptions): TResultAsync; private getSwapFromCache; private getPriceInUsdFromCache; private setPriceInUsdToCache; } export declare class TokenRangePriceService { private service; private cache; private INTERVAL; constructor(service: AmmV2PriceQuote); getRoute(symbol: string, opts?: ISwapOptions): TResultAsync; getRoute(address: TAddress, opts?: ISwapOptions): TResultAsync; getRoute(token: IToken, opts?: ISwapOptions): TResultAsync; } interface ISwapRouted { outToken: IToken; outAmount: bigint; outUsd: number; outUsdPrice: number; inToken: IToken; inAmount: bigint; inUsd: number; inUsdPrice: number; route: ISwapped[]; } interface ISwapped { from: IToken; fromAmount: bigint; fromUsd?: number; fromPrice?: number; to: IToken; toAmount: bigint; toUsd?: number; toPrice?: number; usd: number; date: Date; pool: { address: TAddress; reserve0: bigint; reserve1: bigint; }; } export {};