import Big, { BigSource } from "big.js";
import BN from "bn.js";
import { Bitcoin, BitcoinUnit, Currency, ExchangeRate, MonetaryAmount } from "@interlay/monetary-js";
import { InterbtcPrimitivesOracleKey } from "@polkadot/types/lookup";
import { CurrencyUnit, GovernanceCurrency, GovernanceUnit, CollateralCurrency } from "../types/currency";
import { ApiPromise } from "@polkadot/api";
import { FeeEstimationType } from "../types/oracleTypes";
export declare const MBTC_IN_SAT = 100000;
export declare function roundTwoDecimals(input: string): string;
export declare function satToMBTC(sat: string): string;
export declare function computeLazyDistribution(stake: Big, perToken: Big, tally: Big): Big;
export declare function roundLastNDigits(n: number, x: BN | Big | string): string;
export declare function newMonetaryAmount<U extends CurrencyUnit>(amount: BigSource, currency: Currency<U>, base?: boolean): MonetaryAmount<Currency<U>, U>;
export declare function newCollateralBTCExchangeRate<U extends CurrencyUnit>(rate: Big, counterCurrency: Currency<U>, useBaseUnits?: boolean): ExchangeRate<Bitcoin, BitcoinUnit, Currency<U>, U>;
export declare function createInclusionOracleKey(api: ApiPromise, type: FeeEstimationType): InterbtcPrimitivesOracleKey;
export declare function createExchangeRateOracleKey<U extends CurrencyUnit>(api: ApiPromise, collateralCurrency: Currency<U>): InterbtcPrimitivesOracleKey;
export declare function toVoting(governanceCurrency: GovernanceCurrency): Currency<GovernanceUnit>;
export declare function getCorrespondingCollateralCurrency(governanceCurrency: Currency<GovernanceUnit>): CollateralCurrency;
