/// /// import { PublicKey } from '@solana/web3.js'; import { FixableBeetStruct, BeetStruct } from '@metaplex-foundation/beet'; import BigNumber from 'bignumber.js'; export declare const poolLiquidationStruct: BeetStruct>; export declare const poolLimitStruct: FixableBeetStruct>; export declare const poolCurrencyStruct: BeetStruct>; export declare const delegatorStruct: BeetStruct>; export declare const poolConditionStruct: FixableBeetStruct>; export declare const personalBankStruct: FixableBeetStruct>; export declare enum BankType { Personal = 0, Shared = 1 } export declare enum CurveConfig { Apr = 0 } export declare enum CurveType { Apr = 0 } export declare enum DelegatorType { Empty = 0, Marginfi = 1 } export declare enum LoanKind { Classic = 0, MarginSwap = 1, Request = 2 } export declare enum LoanKindConfig { Classic = 0, MarginSwap = 1 } export declare enum LoanStatus { Ongoing = 0, Repaid = 1, Liquidated = 2, Sold = 3 } export declare enum OracleConfig { None = 0, Pyth = 1, Switchboard = 2, SwitchboardOnDemand = 3 } export declare enum OracleType { Empty = 0, Pyth = 1, Switchboard = 2, SwitchboardOnDemand = 3 } export declare enum PoolStatus { Enabled = 0, Disabled = 1 } export declare enum QuoteStep { Open = 0, Start = 1, End = 2, Close = 3 } export declare enum QuoteType { None = 0, MarginSwap = 1, InstantSell = 2, Liquidate = 3 } export declare enum SetConfig { UpdateMinDuration = 0, UpdateMaxDuration = 1, UpdateMaxAmountUsd = 2, UpdateMinAmountUsd = 3 } export declare enum SetCurrencyConfig { UpdateIsLocked = 0, UpdateOracle = 1 } export declare enum SetPoolConfig { EnablePool = 0, DisablePool = 1, EnableAutoSell = 2, DisableAutoSell = 3, UpdateCurve = 4, UpdateCurrencies = 5, UpdateConditions = 6, UpdateLimits = 7 } export type Bank = { accountDiscriminator: number[]; owner: PublicKey; mint: PublicKey; vault: PublicKey; authority: PublicKey; bankType: BankType; bankTypeDetail: PersonalBank; totalLiquidity: BigNumber; availableLiquidity: BigNumber; delegatedLiquidity: BigNumber; cooldownLiquidity: BigNumber; cooldownPeriod: BigNumber; delegators: Delegator[]; createdAt: BigNumber; depositedAt: BigNumber; withdrawnAt: BigNumber; borrowedAt: BigNumber; repaidAt: BigNumber; frozenUntil: BigNumber; reserved: number[]; }; export declare const bankStruct: FixableBeetStruct>; export type Config = { accountDiscriminator: number[]; minDuration: number; maxDuration: number; maxAmountUsd: number; minAmountUsd: number; admins: PublicKey[]; managers: PublicKey[]; reserved: number[]; }; export declare const configStruct: FixableBeetStruct>; export type Currency = { accountDiscriminator: number[]; currencyId: number; padding1: number[]; mint: PublicKey; tokenProgram: PublicKey; isLocked: number; decimals: number; padding2: number[]; oracles: OracleType[]; padding3: number[]; currentLoan: BigNumber; createdAt: BigNumber; updatedAt: BigNumber; reserved: number[]; }; export declare const currencyStruct: FixableBeetStruct>; export type DefiLoan = { accountDiscriminator: number[]; kind: LoanKind; kindDetail: number[]; status: LoanStatus; isCustom: number; padding1: number[]; borrower: PublicKey; bank: PublicKey; pool: PublicKey; collateral: PublicKey; principal: PublicKey; referrer: PublicKey; interest: BigNumber; borrowedAmount: BigNumber; collateralAmount: BigNumber; duration: number; currency: number; liquidation: number; padding2: number[]; createdAt: BigNumber; expiredAt: BigNumber; repaidAt: BigNumber; liquidatedAt: BigNumber; soldAmount: BigNumber; reserved: BigNumber[]; }; export declare const defiLoanStruct: FixableBeetStruct>; export type Pool = { accountDiscriminator: number[]; owner: PublicKey; seed: number[]; status: PoolStatus; bump: number; padding1: number[]; currentLoan: BigNumber; curve: CurveType; conditions: PoolCondition; liquidation: PoolLiquidation; limits: PoolLimit; totalLiquidations: BigNumber; totalLoans: BigNumber; totalInterest: BigNumber; createdAt: BigNumber; updatedAt: BigNumber; currenciesUpdatedAt: BigNumber; lastLoanAt: BigNumber; reserved: BigNumber[]; currencies: PoolCurrency[]; }; export declare const poolStruct: FixableBeetStruct>; export type Quote = { accountDiscriminator: number[]; quoteType: QuoteType; quoteStep: QuoteStep; padding1: number[]; quote: PublicKey; payer: PublicKey; borrower: PublicKey; loan: PublicKey; inVault: PublicKey; outVault: PublicKey; borrowedAmount: BigNumber; inAmountJup: BigNumber; minSwappedAmount: BigNumber; tempValue: BigNumber; dataLength: BigNumber; jupVec: number[]; slot: BigNumber; createdAt: BigNumber; bump: number; padding2: number[]; }; export declare const quoteStruct: FixableBeetStruct>; export type Request = { accountDiscriminator: number[]; payer: PublicKey; borrower: PublicKey; request: PublicKey; collateral: PublicKey; principal: PublicKey; requestVault: PublicKey; collateralAmount: BigNumber; principalAmount: BigNumber; interest: BigNumber; duration: number; padding1: number; padding2: number; bump: number; createdAt: BigNumber; reserved: number[]; }; export declare const requestStruct: FixableBeetStruct>; export type UserStats = { accountDiscriminator: number[]; owner: PublicKey; totalLoan: BigNumber; totalLiquidation: BigNumber; currentLoan: BigNumber; totalVolume: BigNumber; points: BigNumber; creditScore: BigNumber; referrer: PublicKey; createdAt: BigNumber; bump: number; padding1: number[]; reserved: number[]; }; export declare const userStatsStruct: FixableBeetStruct>; export type Vault = { accountDiscriminator: number[]; mint: PublicKey; tokenAccount: PublicKey; tokenProgram: PublicKey; oracles: OracleType[]; padding1: number[]; ixGate: BigNumber; vaultBump: number; tokenAccountBump: number; decimals: number; padding2: number[]; deposited: BigNumber; maxDeposit: BigNumber; withdrawalWindow: BigNumber; withdrawalWindowLimit: BigNumber; withdrawalWindowStart: BigNumber; withdrawalWindowAccumulator: BigNumber; createdAt: BigNumber; updatedAt: BigNumber; depositedAt: BigNumber; withdrawnAt: BigNumber; reserved: number[]; }; export declare const vaultStruct: FixableBeetStruct>; export type ClassicLoan = { reserved: number[]; }; export declare const classicLoanStruct: FixableBeetStruct>; export type ConditionConfig = { minAge: BigNumber; minLoan: BigNumber; minVolume: BigNumber; liquidationThreshold: number; isEnabled: number; whitelist: PublicKey; }; export declare const conditionConfigStruct: BeetStruct>; export type CurrencyConfig = { currency: number; currencyLtv: number; exposure: number; }; export declare const currencyConfigStruct: BeetStruct>; export type CurrencyConfigFake = { currency: number; currencyLtv: number; exposure: number; borrowedAmount: BigNumber; }; export declare const currencyConfigFakeStruct: BeetStruct>; export type CurrencyDeletedEvent = { currency: PublicKey; }; export declare const currencyDeletedEventStruct: BeetStruct>; export type CurveApr = { apr: number; padding2: number[]; padding1: BigNumber[]; }; export declare const curveAprStruct: FixableBeetStruct>; export type CurveAprConfig = { apr: number; }; export declare const curveAprConfigStruct: BeetStruct>; export type Delegator = { delegatorType: DelegatorType; delegatedAmount: BigNumber; }; export type EmptyDelegator = { reserved: number[]; reserved1: number[]; reserved2: number[]; reserved3: number[]; }; export declare const emptyDelegatorStruct: FixableBeetStruct>; export type EmptyOracle = { reserved: number[]; reserved1: number[]; reserved2: number[]; reserved3: number[]; }; export declare const emptyOracleStruct: FixableBeetStruct>; export type LimitConfig = { minDuration: number; maxDuration: number; maxAmountUsd: number; minAmountUsd: number; }; export declare const limitConfigStruct: BeetStruct>; export type MarginSwapLoan = { downPayment: BigNumber; reserved: number[]; reserved1: number[]; }; export declare const marginSwapLoanStruct: FixableBeetStruct>; export type MarginfiDelegator = { marginfiBank: PublicKey; reserved1: number[]; reserved2: number[]; reserved3: number[]; }; export declare const marginfiDelegatorStruct: FixableBeetStruct>; export type PersonalBank = { reserved: number[]; reserved1: number[]; reserved2: number[]; }; export type PoolCondition = { minAge: BigNumber; minLoan: BigNumber; minVolume: BigNumber; unused: BigNumber; liquidationThreshold: number; isEnabled: number; padding1: number[]; whitelist: PublicKey; reserved: BigNumber[]; }; export type PoolCurrency = { currency: number; currencyLtv: number; exposure: number; borrowedAmount: BigNumber; }; export type PoolDeletedEvent = { pool: PublicKey; }; export declare const poolDeletedEventStruct: BeetStruct>; export type PoolLimit = { minDuration: number; maxDuration: number; maxAmountUsd: number; minAmountUsd: number; reserved: BigNumber[]; }; export type PoolLiquidation = { loanLiquidation: number; mortgageLiquidation: number; isAutoSellEnabled: number; padding1: number; padding2: number; }; export type PythV2Oracle = { feedId: number[]; reserved: number[]; reserved1: number[]; reserved2: number[]; }; export declare const pythV2OracleStruct: FixableBeetStruct>; export type RequestDeletedEvent = { request: PublicKey; }; export declare const requestDeletedEventStruct: BeetStruct>; export type RequestLoan = { reserved: number[]; }; export declare const requestLoanStruct: FixableBeetStruct>; export type SharedBank = { lpMint: PublicKey; lpRate: BigNumber; lpSupply: BigNumber; padding1: number[]; lpDecimals: number; padding2: number[]; }; export declare const sharedBankStruct: FixableBeetStruct>; export type SwitchboardOnDemandOracle = { account: PublicKey; reserved: number[]; reserved1: number[]; reserved2: number[]; }; export declare const switchboardOnDemandOracleStruct: FixableBeetStruct>; export type SwitchboardOracle = { account: PublicKey; reserved: number[]; reserved1: number[]; reserved2: number[]; }; export declare const switchboardOracleStruct: FixableBeetStruct>; export type NftLoan = { accountDiscriminator: number[]; kind: LoanKind; kindDetail: number[]; status: LoanStatus; isCustom: number; padding1: number[]; borrower: PublicKey; bank: PublicKey; pool: PublicKey; collateral: PublicKey; principal: PublicKey; referrer: PublicKey; interest: BigNumber; borrowedAmount: BigNumber; duration: number; collection: number; liquidation: number; padding2: number[]; createdAt: BigNumber; expiredAt: BigNumber; repaidAt: BigNumber; liquidatedAt: BigNumber; reserved: BigNumber[]; }; export declare const nftLoanStruct: FixableBeetStruct>;