import { User } from './User'; import { IFees, IPoolRange, IVariableRateHistoryItem, IVaultAmounts, IVaultAssetInfo } from './interfaces'; declare class Dashi { private fees; private assetInfo; private referenceAsset; private range; private fixedRateApr; private fixedRate; private termInDays; private _positions; private protocolFees; private vaultLocked; private time; private lastVariableRate; private lockedFixedSum; private lockedFixedSumAssetReference; private lockedVariableSum; private totalYield; private totalYieldAfterFees; private xchangeRates; private variableRateHistory; private readonly debug; constructor(fixedRateApr: number, termInDays: number, range: IPoolRange, assetInfo: IVaultAssetInfo, fees?: { protocol: number; }, referenceAsset?: string, debug?: boolean); showPositions(): { portfolio: { asset: string; value: number; }[]; locked: boolean; }[]; showFixedPositions(): { portfolio: { asset: string; value: number; }[]; locked: boolean; }[]; showVariablePositions(): { portfolio: { asset: string; value: number; }[]; locked: boolean; }[]; /** * Add fixed info in the reference currency * @param user * @param value * @returns */ addFixed(user: User, value: number): this; addVariable(user: User, value: number): this; getCurrentVariableCapacity(): number; getLastVariableRate(): any; getFunds(user: User, autoSwap?: boolean): this; lockVault(): this; status(): { locked: { f: string | { portfolio: { asset: string; value: number; }[]; locked: boolean; }; v: string | { portfolio: { asset: string; value: number; }[]; locked: boolean; }; }[]; protocolFees: IVaultAmounts; floating: { history: IVariableRateHistoryItem[]; }; xchangeRate: [number, number, number]; totalYield: number; totalYieldAfterFees: number; time: number; config: { fixedRateApr: number; fixedRate: number; termInDays: number; fees: IFees; }; }; evolve(t: number | undefined, variableRateApr: number, priceX?: number, priceY?: number): this; private isInRange; private calculateYield; private updateFixedPositions; private updatePositions; private updatePosition; private packInfo; private addPosition; private payFixed; private payVariable; private collectFees; private getAmountXAmountY; private calcTotalAmount; private calcPortfolioValueInReferenceAssets; private calcTotalValueFromThreeAssets; private collectVariablePremium; private updateXchangeRates; } export { Dashi };