import { BN } from "@coral-xyz/anchor"; import { PublicKey, TransactionInstruction, TransactionSignature, VersionedTransaction } from "@solana/web3.js"; import { BaseClient, BaseTxBuilder, type ProtocolPolicyClient, type ProtocolPolicyTxBuilder, type TxOptions } from "../base"; import { JupiterEarnPolicy } from "../../deser/integrationPolicies"; export type JupiterEarnDepositAccounts = { depositorTokenAccount?: PublicKey; recipientTokenAccount?: PublicKey; mint: PublicKey; lendingAdmin: PublicKey; lending: PublicKey; fTokenMint: PublicKey; supplyTokenReservesLiquidity: PublicKey; lendingSupplyPositionOnLiquidity: PublicKey; rateModel: PublicKey; vault: PublicKey; liquidity: PublicKey; liquidityProgram?: PublicKey; rewardsRateModel: PublicKey; tokenProgram?: PublicKey; fTokenProgram?: PublicKey; associatedTokenProgram?: PublicKey; }; export type JupiterEarnWithdrawAccounts = { ownerTokenAccount?: PublicKey; recipientTokenAccount?: PublicKey; lendingAdmin: PublicKey; lending: PublicKey; mint: PublicKey; fTokenMint: PublicKey; supplyTokenReservesLiquidity: PublicKey; lendingSupplyPositionOnLiquidity: PublicKey; rateModel: PublicKey; vault: PublicKey; claimAccount: PublicKey; liquidity: PublicKey; liquidityProgram?: PublicKey; rewardsRateModel: PublicKey; tokenProgram?: PublicKey; fTokenProgram?: PublicKey; associatedTokenProgram?: PublicKey; }; declare class TxBuilder extends BaseTxBuilder implements ProtocolPolicyTxBuilder { depositIx(amount: BN | bigint | number, minAmountOut: BN | bigint | number, accounts: JupiterEarnDepositAccounts, signer?: PublicKey): Promise; depositTx(amount: BN | bigint | number, minAmountOut: BN | bigint | number, accounts: JupiterEarnDepositAccounts, txOptions?: TxOptions): Promise; withdrawIx(amount: BN | bigint | number, maxSharesBurn: BN | bigint | number, accounts: JupiterEarnWithdrawAccounts, signer?: PublicKey): Promise; withdrawTx(amount: BN | bigint | number, maxSharesBurn: BN | bigint | number, accounts: JupiterEarnWithdrawAccounts, txOptions?: TxOptions): Promise; setPolicyIx(policy: JupiterEarnPolicy, signer?: PublicKey): Promise; setPolicyTx(policy: JupiterEarnPolicy, txOptions?: TxOptions): Promise; clearPolicyIx(signer?: PublicKey): Promise; clearPolicyTx(txOptions?: TxOptions): Promise; } export declare class JupiterEarnClient implements ProtocolPolicyClient { readonly base: BaseClient; readonly txBuilder: TxBuilder; constructor(base: BaseClient); getIntegrationAuthorityPda(): PublicKey; deposit(mint: PublicKey, amount: BN | bigint | number, minAmountOut?: BN | bigint | number, txOptions?: TxOptions): Promise; withdraw(mint: PublicKey, amount: BN | bigint | number, maxSharesBurn?: BN | bigint | number, txOptions?: TxOptions): Promise; fetchPolicy(): Promise; setPolicy(policy: JupiterEarnPolicy, txOptions?: TxOptions): Promise; clearPolicy(txOptions?: TxOptions): Promise; private resolveAccounts; } export {};