import { PublicKey } from "@solana/web3.js";
import { CurveChainData, FundStateChainData, OraclePrice, RouteData, TokenPriceData, TokenSettings } from "./types";
export declare const BPS_DIVIDER = 10000;
export declare const WEIGHT_MULTIPLIER = 10000;
export declare function mul_div(a: number, b: number, c: number): number;
export declare function amount_to_usd_value(amount: number, decimals: number, price: number): number;
export declare function usd_value_to_amount(worth: number, decimals: number, price: number): number;
export declare function compute_value_of_sold_token(amount: number, token_settings: TokenSettings, price: OraclePrice, start_amount: number, target_amount: number, curve_data: TokenPriceData): number;
export declare function compute_amount_of_bought_token(value: number, token_settings: TokenSettings, price: OraclePrice, start_amount: number, target_amount: number, curve_data: TokenPriceData): number;
export declare function computeOutputAmount(from_token_id: number, to_token_id: number, from_amount: number, fundState: FundStateChainData, oracle_prices: OraclePrice[], curve_data: CurveChainData, token_list: {
    list: TokenSettings[];
}): {
    toAmount: undefined;
    feePct: undefined;
} | {
    toAmount: number;
    feePct: number;
};
export declare function checkForLiquidity(tokenListData: TokenSettings[], curveChainData: CurveChainData, fundAddress: PublicKey, fund: FundStateChainData, oraclePrices: OraclePrice[], tokenFrom: number, tokenTo: number, fromAmount: number): RouteData | undefined;
export declare function loadRouteData(tokenListData: TokenSettings[], curveChainData: CurveChainData, funds: {
    pubkey: PublicKey;
    fund: FundStateChainData;
}[], oraclePrices: OraclePrice[], tokenFrom: number, tokenTo: number, fromAmount: number): RouteData;
