///
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;
}