///
import type { ProgramAccount } from "@project-serum/anchor";
import type { MergeMinerData, MergePoolData, MinerData, QuarryData, RewarderData } from "@quarryprotocol/quarry-sdk";
import type { AssociatedTokenAccount } from "@saberhq/sail";
import type { Token } from "@saberhq/token-utils";
import { TokenAmount } from "@saberhq/token-utils";
import type { PublicKey } from "@solana/web3.js";
export interface UseMergedQuarriesArgs {
/**
* Owner of the Merge Miner. Defaults to the currently connected user.
*/
owner?: PublicKey;
/**
* Primary token to stake.
*/
primaryToken?: Token;
/**
* Key of the primary rewarder.
*/
primaryRewarder?: PublicKey;
/**
* Keys of all replica rewarders.
*/
replicaRewarders?: PublicKey[];
}
export interface UseMergedQuarries {
primaryToken: Token;
replicaToken?: Token | null;
primaryRewarderKey: PublicKey;
replicaRewarderKeys: PublicKey[];
userPrimaryTokenBalance?: AssociatedTokenAccount | null;
mergePool?: ProgramAccount | null;
mergeMiner?: ProgramAccount | null;
loading: boolean;
quarries: MergedQuarry[];
primaryQuarry?: MergedQuarry;
}
/**
* A Quarry being mined alongside other quarries.
*/
export interface MergedQuarry {
/**
* If true, then the quarry is a replica.
*/
isReplica: boolean;
/**
* Reward token.
*/
rewardToken: Token;
/**
* The rewarder.
*/
rewarder: ProgramAccount;
/**
* The quarry.
*/
quarry: ProgramAccount;
/**
* The miner.
*/
miner: ProgramAccount | null;
/**
* Total deposits
*/
totalDeposits: TokenAmount | null;
/**
* Total pool rewards per day, in tokens
*/
rewardsPerDay: TokenAmount | null;
/**
* Gets the currently claimable amount of tokens.
*/
getClaimableAmount: () => number;
/**
* Amount of tokens the user has staked.
*/
userStakedAmount: TokenAmount | null;
/**
* Amount of user rewards tokens per day.
*/
userRewardsPerDay: TokenAmount | null;
}
/**
* @deprecated To be removed in v.0.14.0.
*/
export declare const MergedQuarriesProvider: import("react").ComponentType>, useMergedQuarries: () => UseMergedQuarries;
//# sourceMappingURL=context.d.ts.map