/// import { BN, web3 } from '@project-serum/anchor'; import { Marinade } from '../marinade'; import { MarinadeMint } from '../marinade-mint/marinade-mint'; import { StakeRecord } from './borsh/stake-record'; import { StakeState } from './borsh/stake-state'; import { ValidatorRecord } from './borsh/validator-record'; import { MarinadeStateResponse } from './marinade-state.types'; import { StakeInfo } from './borsh/stake-info'; export declare class MarinadeState { private readonly marinade; private readonly anchorProvider; readonly state: MarinadeStateResponse; readonly marinadeStateAddress: web3.PublicKey; readonly marinadeFinanceProgramId: web3.PublicKey; private constructor(); static fetch(marinade: Marinade): Promise; reserveAddress: () => Promise; mSolPrice: number; mSolMintAddress: web3.PublicKey; mSolMint: MarinadeMint; mSolMintAuthority: () => Promise; mSolLegAuthority: () => Promise; mSolLeg: web3.PublicKey; lpMintAddress: web3.PublicKey; lpMint: MarinadeMint; lpMintAuthority: () => Promise; solLeg: () => Promise; private findProgramDerivedAddress; validatorDuplicationFlag: (validatorAddress: web3.PublicKey) => Promise; epochInfo: () => Promise; unstakeNowFeeBp(lamportsToObtain: BN): Promise; stakeDelta(): BN; /** * return validatorRecords with capacity */ getValidatorRecords(): Promise<{ validatorRecords: ValidatorRecord[]; capacity: number; }>; /** * return stakeRecords with capacity */ getStakeRecords(): Promise<{ stakeRecords: StakeRecord[]; capacity: number; }>; getStakeStates(): Promise; /** * return listStakeInfos with capacity */ getStakeInfos(): Promise<{ stakeInfos: StakeInfo[]; capacity: number; }>; treasuryMsolAccount: web3.PublicKey; /** * Commission in % */ rewardsCommissionPercent: number; }