import BigNumber from '../../config/bigNumber'; import { CurveType } from '../constants'; import { CalculatePriceOptions, CalculateTokensOptions, GetCollateralPriceOptions, GetMarketCapOptions, GetPriceForCurvePositionOptions, GetTokensNrFromCollateralOptions } from './types'; export declare abstract class BaseCurve { dynamicThreshold: number; curveLimit: number; curveType: CurveType; getCollateralPrice(options: GetCollateralPriceOptions): BigNumber; getTokensNrFromCollateral(options: GetTokensNrFromCollateralOptions): bigint; getPriceForCurvePosition(options: GetPriceForCurvePositionOptions): BigNumber; abstract calculateCostForNTokens(options: CalculatePriceOptions): BigNumber | undefined; abstract calculateTokensNrFromCollateral(options: CalculateTokensOptions): bigint | undefined; abstract tokensToMigrate(coefA: BigNumber, coefB: BigNumber, allocation: bigint, decimalsNr: number, migrationFee: number): bigint | undefined; abstract tokensToBurn(totalSupply: bigint, allocation: bigint, tokensToMigrate: bigint): bigint | undefined; abstract migrationFee(): bigint; abstract calculateCurvePrice(coefA: BigNumber, coefB: BigNumber, curvePosition: bigint, collateralDecimals: number, tokenDecimals: number): BigNumber | undefined; abstract getCoefA(coef_b: BigNumber, totalSupply: bigint, decimalNr: number, marketcapThreshold: bigint, marketcapDecimalNr: number): BigNumber; abstract getCoefB(coefBMinimalUnits: bigint, collateralDecimalsNr: number): BigNumber; abstract getMarketCap(options: GetMarketCapOptions): bigint; }