import { BN } from "@coral-xyz/anchor"; import { PublicKey, VersionedTransaction, TransactionSignature, TransactionInstruction } from "@solana/web3.js"; import { BaseClient, BaseTxBuilder, type ProtocolPolicyClient, type ProtocolPolicyTxBuilder, type TxOptions } from "../base"; import { KaminoLendingPolicy } from "../../deser/integrationPolicies"; import { Reserve, Obligation } from "../../deser/kaminoLayouts"; import { VaultClient } from "../vault"; import { RefreshObligationAccounts, RefreshReserveAccounts, RefreshObligationFarmsForReserveArgs, RefreshObligationFarmsForReserveAccounts } from "./types"; declare class TxBuilder extends BaseTxBuilder implements ProtocolPolicyTxBuilder { refreshObligationIx(accounts: RefreshObligationAccounts): TransactionInstruction; refreshReserveIx(accounts: RefreshReserveAccounts): TransactionInstruction; refreshObligationFarmsForReserveIx(args: RefreshObligationFarmsForReserveArgs, accounts: RefreshObligationFarmsForReserveAccounts): TransactionInstruction; refreshReservesBatchIx(reserves: Reserve[], skipPriceUpdates: boolean): TransactionInstruction; refreshReservesIxs(reserves: Reserve[]): TransactionInstruction[]; refreshObligationCollateralFarmsForReservesIxs(obligation: PublicKey, reserves: Reserve[]): TransactionInstruction[]; refreshObligationDebtFarmsForReservesIxs(obligation: PublicKey, reserves: Reserve[]): TransactionInstruction[]; /** * Returns two instructions that refresh reserves in batch and refresh obligation */ refreshReservesAndObligationIxs(obligation: PublicKey, targetReserve: Reserve): Promise; /** * Returns an instruction to initialize obligation farm user if it doesn't exist * * @param mode 0 collateral farm, 1 debt farm */ initObligationFarmUserForReserveIx(obligation: PublicKey, reserve: Reserve, mode: 0 | 1, signer?: PublicKey): Promise<{ farmUser: null; initIx: null; } | { farmUser: PublicKey; initIx: TransactionInstruction | null; }>; initUserMetadataTx(txOptions?: TxOptions): Promise; depositIxs(market: PublicKey, asset: PublicKey, amount: BN, glamSigner: PublicKey): Promise; depositTx(market: PublicKey, asset: PublicKey, amount: BN, txOptions?: TxOptions): Promise; withdrawIxs(market: PublicKey, asset: PublicKey, amount: BN, glamSigner: PublicKey): Promise; withdrawTx(market: PublicKey, asset: PublicKey, amount: BN, txOptions?: TxOptions): Promise; borrowIxs(market: PublicKey, asset: PublicKey, amount: BN, glamSigner: PublicKey): Promise; borrowTx(market: PublicKey, asset: PublicKey, amount: BN, txOptions?: TxOptions): Promise; requestElevationGroupIxs(lendingMarket: PublicKey, elevationGroup: number, glamSigner: PublicKey): Promise; requestElevationGroupTx(lendingMarket: PublicKey, elevationGroup: number, txOptions?: TxOptions): Promise; repayIxs(market: PublicKey, asset: PublicKey, amount: BN, glamSigner: PublicKey): Promise; repayTx(market: PublicKey, asset: PublicKey, amount: BN, txOptions?: TxOptions): Promise; setPolicyIx(policy: KaminoLendingPolicy, signer?: PublicKey): Promise; setPolicyTx(policy: KaminoLendingPolicy, txOptions?: TxOptions): Promise; clearPolicyIx(signer?: PublicKey): Promise; clearPolicyTx(txOptions?: TxOptions): Promise; } export declare class KaminoLendingClient implements ProtocolPolicyClient { readonly base: BaseClient; readonly vault: VaultClient; private reserves; private obligations; txBuilder: TxBuilder; constructor(base: BaseClient, vault: VaultClient); /** * Initializes Kamino user metadata */ initUserMetadata(txOptions?: TxOptions): Promise; /** * Deposits asset to the lending market. */ deposit(market: PublicKey | string, asset: PublicKey | string, amount: BN | number, txOptions?: TxOptions): Promise; /** * Withdraws asset from the lending market. */ withdraw(market: PublicKey | string, asset: PublicKey | string, amount: BN | number, txOptions?: TxOptions): Promise; /** * Borrows asset from the lending market. */ borrow(market: PublicKey | string, asset: PublicKey | string, amount: BN | number, txOptions?: TxOptions): Promise; /** * Requests an elevation group for an obligation. */ requestElevationGroup(market: PublicKey | string, elevationGroup: number, txOptions?: TxOptions): Promise; /** * Repays asset to the lending market. */ repay(market: PublicKey | string, asset: PublicKey | string, amount: BN | number, txOptions?: TxOptions): Promise; fetchPolicy(): Promise; setPolicy(policy: KaminoLendingPolicy, txOptions?: TxOptions): Promise; clearPolicy(txOptions?: TxOptions): Promise; getUserMetadataPda(owner: PublicKey): PublicKey; getObligationPda(owner: PublicKey, market: PublicKey, args?: { tag: number; id: number; }): PublicKey; getFarmUserState(farmUser: PublicKey, farm: PublicKey): PublicKey; getMarketAuthority(market: PublicKey): PublicKey; fetchAndParseObligation(obligation: PublicKey): Promise; fetchAndParseReserves(reserves: PublicKey[]): Promise; findAndParseReserve(market: PublicKey, asset: PublicKey): Promise; findAndParseObligations(owner: PublicKey, market?: PublicKey): Promise; } export {};