import { BN, Program, Provider, web3 } from '@coral-xyz/anchor'; import { MarinadeState } from '../marinade-state/marinade-state'; import { MarinadeReferralStateResponse } from '../marinade-referral-state/marinade-referral-state.types'; import { Marinade } from '../marinade'; import * as mariandeReferral from './idl/types/marinade_referral'; type MarinadeReferral = mariandeReferral.MarinadeReferral; export type MarinadeReferralProgramType = Program; 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(): MarinadeReferralProgramType; 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; getReferralStateData(): Promise; } export {};