import { BN, Program, web3, Provider, IdlTypes } from '@coral-xyz/anchor'; import { MarinadeState } from '../marinade-state/marinade-state'; import { TicketAccount } from '../marinade-state/borsh/ticket-account'; import * as mariandeFinance from './idl/types/marinade_finance'; type MarinadeFinance = mariandeFinance.MarinadeFinance; export type MarinadeFinanceProgramType = Program; export type ValidatorRecordAnchorType = IdlTypes['ValidatorRecord']; export type StateRecordAnchorType = IdlTypes['StakeRecord']; export declare class MarinadeFinanceProgram { readonly programAddress: web3.PublicKey; readonly anchorProvider: Provider; constructor(programAddress: web3.PublicKey, anchorProvider: Provider); get program(): MarinadeFinanceProgramType; getDelayedUnstakeTickets(beneficiary?: web3.PublicKey): Promise>; getEstimatedUnstakeTicketDueDate: (marinadeState: MarinadeState) => Promise; addLiquidityInstructionBuilder: ({ marinadeState, ownerAddress, associatedLPTokenAccountAddress, amountLamports, }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedLPTokenAccountAddress: web3.PublicKey; amountLamports: BN; }) => Promise; removeLiquidityInstructionBuilder: ({ marinadeState, ownerAddress, associatedLPTokenAccountAddress, associatedMSolTokenAccountAddress, amountLamports, }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedLPTokenAccountAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; amountLamports: BN; }) => Promise; liquidUnstakeInstructionBuilder: ({ marinadeState, ownerAddress, associatedMSolTokenAccountAddress, amountLamports, }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; amountLamports: BN; }) => Promise; depositInstructionBuilder: ({ marinadeState, transferFrom, associatedMSolTokenAccountAddress, amountLamports, }: { marinadeState: MarinadeState; transferFrom: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; amountLamports: BN; }) => Promise; depositStakeAccountInstructionBuilder: ({ marinadeState, duplicationFlag, ownerAddress, stakeAccountAddress, authorizedWithdrawerAddress, associatedMSolTokenAccountAddress, validatorIndex, }: { marinadeState: MarinadeState; duplicationFlag: web3.PublicKey; ownerAddress: web3.PublicKey; stakeAccountAddress: web3.PublicKey; authorizedWithdrawerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; validatorIndex: number; }) => Promise; claimInstructionBuilder: ({ marinadeState, ticketAccount, transferSolTo, }: { marinadeState: MarinadeState; ticketAccount: web3.PublicKey; transferSolTo: web3.PublicKey; }) => Promise; orderUnstakeInstructionBuilder: ({ marinadeState, ownerAddress, associatedMSolTokenAccountAddress, newTicketAccount, msolAmount, }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; newTicketAccount: web3.PublicKey; msolAmount: BN; }) => Promise; withdrawStakeAccountInstructionBuilder: ({ marinadeState, ownerAddress, associatedMSolTokenAccountAddress, stakeAccountAddress, splitStakeAccountAddress, splitStakeRentPayer, stakeIndex, validatorIndex, msolAmount, beneficiary, }: { marinadeState: MarinadeState; ownerAddress: web3.PublicKey; associatedMSolTokenAccountAddress: web3.PublicKey; stakeAccountAddress: web3.PublicKey; splitStakeAccountAddress: web3.PublicKey; splitStakeRentPayer: web3.PublicKey; stakeIndex: number; validatorIndex: number; msolAmount: BN; beneficiary: web3.PublicKey; }) => Promise; } export {};