import { web3 } from '@coral-xyz/anchor';
import { BondLoanState, BondLoanStruct, BondLoanType, LiquidationState, RedeemResult } from './BondLoan.types';
export declare function fetchBondLoan(connection: web3.Connection, publicKey: web3.PublicKey): Promise<{
    bondOffer: web3.PublicKey;
    lender: web3.PublicKey;
    borrower: web3.PublicKey;
    collateralTokenAccount: web3.PublicKey;
    compoundedProtocolInterest: import("bn.js");
    loanAmount: import("bn.js");
    feeAmount: import("bn.js");
    soldAt: import("bn.js");
    redeemedAt: import("bn.js");
    currentRemainingLent: import("bn.js");
    interestSnapshot: import("bn.js");
    partialRepaySnapshot: import("bn.js");
    auctionStartedAt: import("bn.js");
    lenderOriginalLent: import("bn.js");
    lenderFullRepaidAmount: import("bn.js");
    borrowerOriginalLent: import("bn.js");
    borrowerFullRepaidAmount: import("bn.js");
    repaymentCallAmount: import("bn.js");
    collateralAmount: import("bn.js");
    protocolApr: number;
    lenderApr: number;
    terminationFreeze: number;
    terminationDuration: number;
    liquidationLtv: number;
    leverageAmountBp: number;
    bondLoanState: number;
    bondLoanType: number;
    liquidationType: number;
    redeemResult: number;
    redeemResultNext: number;
    placeholder2: web3.PublicKey;
    padding: number[];
    publicKey: web3.PublicKey;
} | null>;
export declare function fetchMultipleBondLoans(connection: web3.Connection, publicKeys: web3.PublicKey[]): Promise<BondLoanStruct[]>;
export type FetchBondLoansFilters = {
    bondOffer?: web3.PublicKey;
    lender?: web3.PublicKey;
    borrower?: web3.PublicKey;
    bondLoanState?: BondLoanState;
    bondLoanType?: BondLoanType;
    liquidationType?: LiquidationState;
    redeemResult?: RedeemResult;
    redeemResultNext?: RedeemResult;
};
export declare function fetchAllBondLoans(connection: web3.Connection, filters?: FetchBondLoansFilters): Promise<({
    publicKey: web3.PublicKey;
} & {
    bondOffer: web3.PublicKey;
    lender: web3.PublicKey;
    borrower: web3.PublicKey;
    collateralTokenAccount: web3.PublicKey;
    compoundedProtocolInterest: import("bn.js");
    loanAmount: import("bn.js");
    feeAmount: import("bn.js");
    soldAt: import("bn.js");
    redeemedAt: import("bn.js");
    currentRemainingLent: import("bn.js");
    interestSnapshot: import("bn.js");
    partialRepaySnapshot: import("bn.js");
    auctionStartedAt: import("bn.js");
    lenderOriginalLent: import("bn.js");
    lenderFullRepaidAmount: import("bn.js");
    borrowerOriginalLent: import("bn.js");
    borrowerFullRepaidAmount: import("bn.js");
    repaymentCallAmount: import("bn.js");
    collateralAmount: import("bn.js");
    protocolApr: number;
    lenderApr: number;
    terminationFreeze: number;
    terminationDuration: number;
    liquidationLtv: number;
    leverageAmountBp: number;
    bondLoanState: number;
    bondLoanType: number;
    liquidationType: number;
    redeemResult: number;
    redeemResultNext: number;
    placeholder2: web3.PublicKey;
    padding: number[];
})[]>;
