import { BN, Program, Provider, web3 } from '@project-serum/anchor'; import { MarinadeState } from '../marinade-state/marinade-state'; import { MarinadeReferralStateResponse } from '../marinade-referral-state/marinade-referral-state.types'; import { Marinade } from '../marinade'; import { MarinadeReferralIdl } from './idl/marinade-referral-idl'; export declare class MarinadeReferralProgram { readonly programAddress: web3.PublicKey; readonly anchorProvider: Provider; readonly referralState: web3.PublicKey | null; readonly marinade: Marinade; referralStateData: MarinadeReferralStateResponse.ReferralState | null; constructor(programAddress: web3.PublicKey, anchorProvider: Provider, referralState: web3.PublicKey | null, marinade: Marinade); get program(): Program; liquidUnstakeInstructionAccounts: ({ marinadeState, ownerAddress, associatedMSolTokenAccountAddress }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; }) => Promise; liquidUnstakeInstruction: ({ accounts, amountLamports }: { accounts: MarinadeReferralIdl.Instruction.LiquidUnstake.Accounts; amountLamports: BN; }) => web3.TransactionInstruction; liquidUnstakeInstructionBuilder: ({ amountLamports, ...accountsArgs }: { amountLamports: BN; } & Parameters[0]) => Promise; orderUnstakeInstructionAccounts: ({ marinadeState, associatedMSolTokenAccountAddress, msolTokenAccountAuthority, newTicketAccount, }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; msolTokenAccountAuthority: web3.PublicKey; newTicketAccount: web3.PublicKey; }) => Promise; orderUnstakeInstruction: ({ accounts, amountLamports, bump }: { accounts: MarinadeReferralIdl.Instruction.OrderUnstake.Accounts; amountLamports: BN; bump: number; }) => web3.TransactionInstruction; orderUnstakeInstructionBuilder: ({ amountLamports, bump, ...accountsArgs }: { amountLamports: BN; bump: number; } & Parameters[0]) => Promise; depositInstructionAccounts: ({ marinadeState, transferFrom, associatedMSolTokenAccountAddress }: { marinadeState: MarinadeState; transferFrom: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; }) => Promise; depositInstruction: ({ accounts, amountLamports }: { accounts: MarinadeReferralIdl.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: MarinadeReferralIdl.Instruction.DepositStakeAccount.Accounts; validatorIndex: number; }) => web3.TransactionInstruction; depositStakeAccountInstructionBuilder: ({ validatorIndex, ...accountsArgs }: { validatorIndex: number; } & Parameters[0]) => Promise; getReferralStateData(): Promise; }