import type { Provider } from "@saberhq/solana-contrib"; import { TransactionEnvelope } from "@saberhq/solana-contrib"; import type { TokenAmount } from "@saberhq/token-utils"; import type { PublicKey } from "@solana/web3.js"; import type { MergePoolData, QuarryMergeMineProgram, QuarryStakeAccounts } from "../../programs"; import type { MergeMine } from "./quarryMergeMine"; export declare class MergePool { readonly mergeMine: MergeMine; readonly key: PublicKey; private _data; constructor(mergeMine: MergeMine, key: PublicKey); reloadData(): Promise; data(): Promise; get provider(): Provider; get program(): QuarryMergeMineProgram; /** * Deposit primary tokens into the merge miner. * @param amount * @returns */ deposit({ amount, rewarder, mmOwner, }: { amount: TokenAmount; rewarder: PublicKey; mmOwner?: PublicKey; }): Promise; /** * Deposits tokens into the primary quarry. * (Not recommended-- you probably want {@link MergeMiner#deposit}.) * @returns */ stakePrimaryMiner(rewarder: PublicKey, mergeMiner: PublicKey): Promise; /** * Stakes replica tokens into a miner. * @returns */ stakeReplicaMiner(rewarder: PublicKey, mergeMiner: PublicKey): Promise; /** * Withdraw staked tokens from a merge miner. * @param amount * @returns */ withdraw({ amount, rewarder, mergeMiner, }: { amount: TokenAmount; rewarder: PublicKey; mergeMiner: PublicKey; }): Promise; /** * Unstakes all replica tokens from a quarry. * You must call this function for each replica miner before unstaking the primary. * @returns */ unstakeAllReplica(rewarder: PublicKey, mergeMiner: PublicKey): Promise; /** * Withdraws primary tokens from the quarry. * (Not recommended-- you probably want {@link MergeMiner#withdraw}.) * @returns */ unstakePrimaryMiner(rewarder: PublicKey, mergeMiner: PublicKey, amount: TokenAmount): Promise; /** * Withdraws a specific mint from the merge miner. * @param withdrawMint * @returns */ withdrawTokens(withdrawMint: PublicKey, mergeMiner: PublicKey): Promise; /** * Claims rewards for a primary account. * @param rewarder * @returns */ claimPrimaryRewards(rewarder: PublicKey, mergeMiner: PublicKey): Promise; /** * Claims rewards for a replica account. * @returns */ claimReplicaRewards(rewarder: PublicKey, mergeMiner: PublicKey): Promise; /** * Claims internal mining rewards. * @param amount * @returns */ claimRewardsCommon(quarryMint: PublicKey, stake: QuarryStakeAccounts, mmOwner?: PublicKey): Promise; getReplicaStakeAccounts(rewarder: PublicKey, mergeMiner: PublicKey): Promise; getPrimaryStakeAccounts(rewarder: PublicKey, mergeMiner: PublicKey): Promise; get commonAccounts(): Pick; } //# sourceMappingURL=mergePool.d.ts.map