import { Connection, Keypair, PublicKey, Signer, TransactionInstruction } from '@solana/web3.js'; import { ReserveConfig } from '../src'; import { Token } from '@solana/spl-token'; export declare const LENDING_PROGRAM_ID: PublicKey; export declare const PYTH_ORACLE_PROGRAM_ID: PublicKey; export declare const SWITCHBOARD_PROGRAM_ID: PublicKey; export declare const FLASH_LOAN_PROGRAM_ID: PublicKey; export declare const SWITCHBOARD_FEED: PublicKey; interface IToken { currency: string; mint: Token; userPk: PublicKey; hostPk: PublicKey; protocolKp: Keypair; protocolFeeKp: Keypair; lpMintKp: Keypair; lpUserKp: Keypair; lpProtocolKp: Keypair; pythProductPk: PublicKey; pythPricePk: PublicKey; reserveKp: Keypair; } export declare class Blockchain { connection: Connection; ownerKp: Keypair; lendingMarketKp: Keypair; lendingMarketAuthority: PublicKey; obligationKp: Keypair; obligationDeposits: PublicKey[]; obligationBorrows: PublicKey[]; tokenA: IToken; tokenB: IToken; metrics: { tokenAUserBalance: any; tokenAHostBalance: any; tokenAProtocolBalance: any; tokenAProtocolFeeBalance: any; tokenALPUserBalance: any; tokenALPProtocolBalance: any; tokenBUserBalance: any; tokenBHostBalance: any; tokenBProtocolBalance: any; tokenBProtocolFeeBalance: any; tokenBLPUserBalance: any; tokenBLPProtocolBalance: any; obligState: any; reserveAState: any; reserveBState: any; }; getConnection(): Promise; initLendingMarket(): Promise; initReserve(token: IToken, mintAmount: number, initAmount: number): Promise; depositReserveLiquidity(token: IToken, depositLiquidityAmount: number): Promise; redeemReserveCollateral(token: IToken, redeemCollateralAmount: number): Promise; initObligation(): Promise; depositObligationCollateral(token: IToken, depositCollateralAmount: number): Promise; refreshOblig(): Promise; withdrawObligationCollateral(token: IToken, withdrawCollateralAmount: number): Promise; borrowObligationLiquidity(liquidityToken: IToken, collateralToken: IToken, borrowLiquidityAmount: number): Promise; repayObligationLiquidity(liquidityToken: IToken, collateralToken: IToken, repayLiquidityAmount: number): Promise; depositReserveLiquidityAndObligationCollateral(token: IToken, depositLiquidityAmount: number): Promise; withdrawObligationCollateralAndRedeemReserveCollateral(token: IToken, withdrawCollateralAmount: number): Promise; liquidateObligation(liquidityToken: IToken, collateralToken: IToken, liquidityAmount: number): Promise; borrowFlashLoan(token: IToken, liquidityAmount: number): Promise; _prepareAndSendTx(instructions: TransactionInstruction[], signers: Signer[]): Promise; _createMintAccount(): Promise; _createAndFundUserAccount(mint: Token, mintAmount: number): Promise; _generateCreateTokenAccIx(newAccountPubkey: PublicKey): Promise; _generateCreateTokenMintIx(newAccountPubkey: PublicKey): Promise; _generateCreateStateAccIx(newAccountPubkey: PublicKey, space: number): Promise; _generateStandardReserveConfig(feeReceiver: PublicKey): ReserveConfig; _refreshObligDepositsAndBorrows(): Promise; calcAndPrintMetrics(): Promise; } export {};