import { Connection, PublicKey, Transaction } from "@solana/web3.js"; import { BN } from "@coral-xyz/anchor"; import { FlexibleVaultParams, LockupVaultParams, PDA, ProtocolV2StakingInfo, SolCatStakingProtocolInfo, UserFlexibleStakingInfo, UserLockupStakingInfo } from ".."; import { SolCatContext } from "../contexts/solcat-context"; import { V2Context } from "../contexts/v2-context"; export declare class StakingClient { ctx: SolCatContext; v2Ctx: V2Context; pda: PDA; v2Pda: PDA; constructor(ctx: SolCatContext, v2Ctx: V2Context, pda: PDA, v2Pda: PDA); depositFund(amount: BN, usingV2?: boolean, mint?: PublicKey): Promise; updateAdmin(newAdmin: PublicKey, usingV2?: boolean): Promise; withdrawFund(amount: BN, usingV2?: boolean, mint?: PublicKey): Promise; withdrawToken(amount: BN, mint: PublicKey): Promise; updateLockupVault(index: number, apy: number, lockupDuration: BN, minStakeAmount: BN, usingV2?: boolean, mint?: PublicKey): Promise; updateFlexibleVault(rewardRate: BN, withdrawalDelayTime: BN, usingV2?: boolean, mint?: PublicKey): Promise; initTokenVaults(mint: PublicKey, flexibleVaultParam: FlexibleVaultParams | null, lockupVaultParams: LockupVaultParams[]): Promise; stake(amount: BN, usingV2?: boolean, mint?: PublicKey): Promise; withdraw(amount: BN, usingV2?: boolean, mint?: PublicKey): Promise; withdrawAfterDelay(index: number, usingV2?: boolean, mint?: PublicKey): Promise; claim(usingV2?: boolean, mint?: PublicKey): Promise; lockup(amount: BN, vaultIndex: number, usingV2?: boolean, mint?: PublicKey): Promise; unlock(index: number, vaultIndex: number, usingV2?: boolean, mint?: PublicKey): Promise; getUserFlexibleStakingInfo(filter: { withdrew?: boolean; usingV2: boolean; mint?: PublicKey; user?: PublicKey; }): Promise; getUserLockupStakingInfo(filter: { unlocked?: boolean; usingV2: boolean; mint?: PublicKey; user?: PublicKey; }): Promise; private getAllUserFlexibleStakingAccount; private getAllUserWithdrawPosition; private getFlexiblePendingReward; private getFlexibleStakingInfo; private getAllLockupVaultProtocol; private getAllUserLockupStakingAccount; } export declare function getProtocolInfo(connection: Connection, usingV2: boolean | undefined, mints: PublicKey[]): Promise;