///
///
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>;