import { WhirlpoolData } from "@orca-so/whirlpool-client-sdk";
import { Address } from "@project-serum/anchor";
import Decimal from "decimal.js";
import { OrcaDAL } from "../dal/orca-dal";
declare type TokenMint = string;
declare type PoolData = Pick<WhirlpoolData, "tokenMintA" | "tokenMintB" | "sqrtPrice">;
export declare type TokenUSDPrices = Record<TokenMint, Decimal>;
/**
 * Use on-chain dex data to derive usd prices for tokens.
 *
 * @param pools pools to be used for price discovery
 * @param baseTokenMint a token mint with known stable usd price (e.g. USDC)
 * @param baseTokenUSDPrice baseTokenMint's usd price. defaults to 1, assuming `baseTokenMint` is a USD stable coin
 * @param otherBaseTokenMints optional list of token mints to prioritize as base
 */
export declare function getTokenUSDPrices(dal: OrcaDAL, pools: PoolData[], baseTokenMint: Address, baseTokenUSDPrice?: Decimal, otherBaseTokenMints?: Address[]): Promise<TokenUSDPrices>;
export {};
