import { BN, Program, web3, Provider } from '@project-serum/anchor'; import { MarinadeFinanceProxyIdl as MarinadeFinanceIdl } from './idl/marinade-finance-proxy-idl'; import { MarinadeState } from '../marinade-state/marinade-state'; import { TicketAccount } from '../marinade-state/borsh/ticket-account'; export declare class MarinadeFinanceProgram { readonly programAddress: web3.PublicKey; readonly proxyProgramAddress: web3.PublicKey; readonly anchorProvider: Provider; constructor(programAddress: web3.PublicKey, proxyProgramAddress: web3.PublicKey, anchorProvider: Provider); get program(): Program; get proxyProgram(): Program; getDelayedUnstakeTickets(beneficiary?: web3.PublicKey): Promise>; getDelayedUnstakeTicket(ticketAccountAddress: web3.PublicKey): Promise; getEstimatedUnstakeTicketDueDate: (marinadeState: MarinadeState) => Promise; addLiquidityInstructionAccounts: ({ marinadeState, ownerAddress, associatedLPTokenAccountAddress }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedLPTokenAccountAddress: web3.PublicKey; }) => Promise; addLiquidityInstruction: ({ accounts, amountLamports }: { accounts: MarinadeFinanceIdl.Instruction.AddLiquidity.Accounts; amountLamports: BN; }) => web3.TransactionInstruction; removeLiquidityInstructionAccounts: ({ marinadeState, ownerAddress, associatedLPTokenAccountAddress, associatedMSolTokenAccountAddress }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedLPTokenAccountAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; }) => Promise; removeLiquidityInstruction: ({ accounts, amountLamports }: { accounts: MarinadeFinanceIdl.Instruction.RemoveLiquidity.Accounts; amountLamports: BN; }) => web3.TransactionInstruction; liquidUnstakeInstructionAccounts: ({ proxyStateAddress, marinadeState, ownerAddress, associatedMSolTokenAccountAddress, msolTokenAccountAuthority, proxySolMintAddress, proxySolMintAuthority, associatedProxySolTokenAccountAddress, proxyTreasury, }: { proxyStateAddress: web3.PublicKey; marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; msolTokenAccountAuthority: web3.PublicKey; proxySolMintAddress: web3.PublicKey; proxySolMintAuthority: web3.PublicKey; associatedProxySolTokenAccountAddress: web3.PublicKey; proxyTreasury: web3.PublicKey; }) => Promise; liquidUnstakeInstruction: ({ accounts, amountLamports, bump }: { accounts: MarinadeFinanceIdl.Instruction.LiquidUnstake.Accounts; amountLamports: BN; bump: number; }) => web3.TransactionInstruction; liquidUnstakeInstructionBuilder: ({ amountLamports, bump, ...accountsArgs }: { amountLamports: BN; bump: number; } & Parameters[0]) => Promise; orderUnstakeInstructionAccounts: ({ proxyStateAddress, marinadeState, ownerAddress, associatedMSolTokenAccountAddress, msolTokenAccountAuthority, proxySolMintAddress, proxySolMintAuthority, associatedProxySolTokenAccountAddress, proxyTreasury, newTicketAccount, proxyTicketAccount, }: { proxyStateAddress: web3.PublicKey; marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; msolTokenAccountAuthority: web3.PublicKey; proxySolMintAddress: web3.PublicKey; proxySolMintAuthority: web3.PublicKey; associatedProxySolTokenAccountAddress: web3.PublicKey; proxyTreasury: web3.PublicKey; newTicketAccount: web3.PublicKey; proxyTicketAccount: web3.PublicKey; }) => Promise; orderUnstakeInstruction: ({ accounts, amountLamports, bump }: { accounts: MarinadeFinanceIdl.Instruction.OrderUnstake.Accounts; amountLamports: BN; bump: number; }) => web3.TransactionInstruction; orderUnstakeInstructionBuilder: ({ amountLamports, bump, ...accountsArgs }: { amountLamports: BN; bump: number; } & Parameters[0]) => Promise; depositInstructionAccounts: ({ proxyStateAddress, marinadeState, transferFrom, associatedMSolTokenAccountAddress, msolTokenAccountAuthority, proxySolMintAddress, proxySolMintAuthority, associatedProxySolTokenAccountAddress, associatedLiqPoolTokenAccountAddress, }: { proxyStateAddress: web3.PublicKey; marinadeState: MarinadeState; transferFrom: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; associatedProxySolTokenAccountAddress: web3.PublicKey; associatedLiqPoolTokenAccountAddress: web3.PublicKey; proxySolMintAddress: web3.PublicKey; proxySolMintAuthority: web3.PublicKey; msolTokenAccountAuthority: web3.PublicKey; }) => Promise; depositInstruction: ({ accounts, amountLamports }: { accounts: MarinadeFinanceIdl.Instruction.Deposit.Accounts; amountLamports: BN; }) => web3.TransactionInstruction; depositInstructionBuilder: ({ amountLamports, ...accountsArgs }: { amountLamports: BN; } & Parameters[0]) => Promise; depositStakeAccountInstructionAccounts: ({ marinadeState, duplicationFlag, ownerAddress, stakeAccountAddress, authorizedWithdrawerAddress, associatedMSolTokenAccountAddress, }: { marinadeState: MarinadeState; duplicationFlag: web3.PublicKey; ownerAddress: web3.PublicKey; stakeAccountAddress: web3.PublicKey; authorizedWithdrawerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; }) => Promise; depositStakeAccountInstruction: ({ accounts, validatorIndex }: { accounts: MarinadeFinanceIdl.Instruction.DepositStakeAccount.Accounts; validatorIndex: number; }) => web3.TransactionInstruction; depositStakeAccountInstructionBuilder: ({ validatorIndex, ...accountsArgs }: { validatorIndex: number; } & Parameters[0]) => Promise; }