import { MonetaryAmount } from "@interlay/monetary-js"; import { ApiPromise } from "@polkadot/api"; import { InterbtcPrimitivesVaultId } from "@polkadot/types/lookup"; import Big from "big.js"; import { OracleAPI, SystemAPI } from "../parachain"; import { CollateralCurrencyExt, WrappedCurrency } from "./currency"; export declare enum VaultStatusExt { Active = 0, Inactive = 1, Liquidated = 2 } export declare class VaultExt { private api; private oracleAPI; private systemAPI; backingCollateral: MonetaryAmount; id: InterbtcPrimitivesVaultId; status: VaultStatusExt; bannedUntil: number | undefined; toBeIssuedTokens: MonetaryAmount; issuedTokens: MonetaryAmount; toBeRedeemedTokens: MonetaryAmount; toBeReplacedTokens: MonetaryAmount; replaceCollateral: MonetaryAmount; liquidatedCollateral: MonetaryAmount; secureCollateralThreshold: Big; constructor(api: ApiPromise, oracleAPI: OracleAPI, systemAPI: SystemAPI, backingCollateral: MonetaryAmount, id: InterbtcPrimitivesVaultId, status: VaultStatusExt, bannedUntil: number | undefined, toBeIssuedTokens: MonetaryAmount, issuedTokens: MonetaryAmount, toBeRedeemedTokens: MonetaryAmount, toBeReplacedTokens: MonetaryAmount, replaceCollateral: MonetaryAmount, liquidatedCollateral: MonetaryAmount, secureCollateralThreshold: Big); getRedeemableTokens(): MonetaryAmount; getIssuableTokens(): Promise>; isBanned(): Promise; getBackedTokens(): MonetaryAmount; getFreeCollateral(): Promise>; getUsedCollateral(): Promise>; getSecureCollateralThreshold(): Big; computeBackingCollateral(nonce?: number): Promise>; getStakingPoolNonce(): Promise; } export interface SystemVaultExt { toBeIssuedTokens: MonetaryAmount; issuedTokens: MonetaryAmount; toBeRedeemedTokens: MonetaryAmount; collateral: MonetaryAmount; currencyPair: { collateralCurrency: CollateralCurrencyExt; wrappedCurrency: WrappedCurrency; }; }