import { BN } from "@coral-xyz/anchor"; import { PublicKey, VersionedTransaction, TransactionSignature, TransactionInstruction } from "@solana/web3.js"; import { BaseClient, BaseTxBuilder, TxOptions } from "./base"; import { MarinadeClient } from "./marinade"; import { StakeClient } from "./stake"; interface StakePoolAccountData { programId: PublicKey; depositAuthority: PublicKey; withdrawAuthority: PublicKey; poolMint: PublicKey; feeAccount: PublicKey; reserveStake: PublicKey; tokenProgramId: PublicKey; validatorList: PublicKey; } declare class TxBuilder extends BaseTxBuilder { depositSolIxs(stakePool: PublicKey, lamports: BN, glamSigner: PublicKey): Promise; depositSolTx(stakePool: PublicKey, lamports: BN, txOptions?: TxOptions): Promise; depositStakeIxs(stakePool: PublicKey, stakeAccount: PublicKey, glamSigner: PublicKey): Promise; depositStakeTx(stakePool: PublicKey, stakeAccount: PublicKey, txOptions?: TxOptions): Promise; withdrawStakeIxs(stakePool: PublicKey, amount: BN, deactivate: boolean | undefined, glamSigner: PublicKey): Promise<[TransactionInstruction[], PublicKey]>; withdrawStakeTx(stakePool: PublicKey, amount: BN, deactivate?: boolean, txOptions?: TxOptions): Promise<[VersionedTransaction, PublicKey]>; } export declare class StakePoolClient { readonly base: BaseClient; readonly stake: StakeClient; readonly marinade: MarinadeClient; readonly txBuilder: TxBuilder; constructor(base: BaseClient, stake: StakeClient, marinade: MarinadeClient); unstake(asset: PublicKey, amount: number | BN, deactivate?: boolean, txOptions?: TxOptions): Promise; depositSol(stakePool: PublicKey, amount: BN, txOptions?: TxOptions): Promise; depositStake(stakePool: PublicKey, stakeAccount: PublicKey, txOptions?: TxOptions): Promise; withdrawStake(stakePool: PublicKey, amount: BN, deactivate?: boolean, txOptions?: TxOptions): Promise; getStakePoolWithdrawAuthority(programId: PublicKey, stakePool: PublicKey): PublicKey; getStakePoolDepositAuthority(programId: PublicKey, stakePool: PublicKey): PublicKey; getStakeAccountVoter(stakeAccount: PublicKey): Promise; getStakePoolAccountData(stakePool: PublicKey): Promise; } export {};