///
///
import { BeetStruct, COption, FixableBeetStruct } from '@metaplex-foundation/beet';
import BigNumber from 'bignumber.js';
import { PublicKey } from '@solana/web3.js';
export type LoanTerms = {
apyBps: BigNumber;
duration: BigNumber;
principal: BigNumber;
};
export declare const loanTermsStruct: BeetStruct>;
export type LtvTerms = {
ltvBps: BigNumber;
maxOffer: BigNumber;
};
export declare const ltvTermsStruct: BeetStruct>;
export type ListedLoan = {
listed: boolean;
price: BigNumber;
sold: boolean;
fox: boolean;
listingTime: BigNumber;
};
export declare const listedLoanStruct: BeetStruct>;
export declare enum LoanStatus {
WaitingForBorrower = 0,
WaitingForLender = 1,
Active = 2,
Repaid = 3,
Defaulted = 4,
OnSale = 5
}
export declare enum OfferType {
Global = 0,
Mortgage = 1,
Borrow = 2
}
export type Loan = {
accountDiscriminator: number[];
bump: number;
lender: PublicKey;
borrower: PublicKey;
mint: PublicKey;
collectionConfig: PublicKey;
status: LoanStatus;
loanTerms: LoanTerms;
creationTime: BigNumber;
startTime: BigNumber;
endTime: BigNumber;
fox: boolean;
mortgage: boolean;
private: boolean;
offerType: OfferType;
listingPrice: BigNumber;
ltvTerms: COption;
pool: boolean;
listedLoan: ListedLoan | null;
};
export declare const loanStruct: FixableBeetStruct>;