import Big from "big.js"; import { ApiPromise } from "@polkadot/api"; /** * @category PolkaBTC Bridge * The type Big represents DOT or PolkaBTC denominations, * while the type BN represents Planck or Satoshi denominations. */ export interface FeeAPI { /** * @param amount Amount, in BTC, for which to compute the required * griefing collateral * @param griefingCollateralRate * @param oracleAPI * @returns The griefing collateral, in DOT */ getGriefingCollateral(amount: Big, griefingCollateralRate: Big): Promise; /** * @param feesPolkaBTC Satoshi value representing the BTC fees accrued * @param feesDOT Planck value representing the DOT fees accrued * @param lockedDOT Planck value representing the value locked to gain yield * @param dotToBtcRate (Optional) Conversion rate of the large denominations (DOT/BTC as opposed to Planck/Satoshi) * @returns The APY, given the parameters */ calculateAPY(feesPolkaBTC: Big, feesDOT: Big, lockedDOT: Big, dotToBtcRate?: Big): Promise; /** * @returns The griefing collateral rate for issuing PolkaBTC */ getIssueGriefingCollateralRate(): Promise; /** * @returns The griefing collateral rate for the Vault replace request */ getReplaceGriefingCollateralRate(): Promise; } export declare class DefaultFeeAPI implements FeeAPI { private api; private oracleAPI; constructor(api: ApiPromise); getGriefingCollateral(amount: Big, griefingCollateralRate: Big): Promise; getIssueGriefingCollateralRate(): Promise; getReplaceGriefingCollateralRate(): Promise; calculateAPY(feesPolkaBTC: Big, feesDOT: Big, lockedDOT: Big, dotToBtcRate?: Big): Promise; }