import { Cell, ContractProvider, SenderArguments, Sender } from '@ton/ton'; import { AddressType, QueryIdType, AmountType } from '../../../types.js'; import { Contract, ContractOptions } from '../../core/Contract.js'; import { FARM_VERSION } from '../constants.js'; interface FarmNftItemV1Options extends ContractOptions { gasConstants?: Partial; } /** * @deprecated `v1` version of the FarmNftItem contracts is deprecated. * * Only use this version to claim rewards and unstake tokens from the contract. * For all other operations, use the latest version of the contract. */ declare class FarmNftItemV1 extends Contract { static readonly version: FARM_VERSION; static readonly gasConstants: { claimRewards: bigint; unstake: bigint; destroy: bigint; }; readonly gasConstants: { claimRewards: bigint; unstake: bigint; destroy: bigint; }; constructor(address: AddressType, { gasConstants, ...options }?: FarmNftItemV1Options); createClaimRewardsBody(params?: { queryId?: QueryIdType; }): Promise; /** * Build all data required to execute a `claim_rewards` transaction. * * @param {bigint | number | string | undefined} params.gasAmount - Optional; Custom transaction gas amount (in nanoTons) * @param {bigint | number | undefined} params.queryId - Optional; query id * * @returns {SenderArguments} all data required to execute a `claim_rewards` transaction. */ getClaimRewardsTxParams(provider: ContractProvider, params?: { gasAmount?: AmountType; queryId?: QueryIdType; }): Promise; sendClaimRewards(provider: ContractProvider, via: Sender, params: Parameters[1]): Promise; createUnstakeBody(params?: { queryId?: QueryIdType; }): Promise; /** * Build all data required to execute a `unstake` transaction. * * @param {bigint | number | string | undefined} params.gasAmount - Optional; Custom transaction gas amount (in nanoTons) * @param {bigint | number | undefined} params.queryId - Optional; query id * * @returns {SenderArguments} all data required to execute a `unstake` transaction. */ getUnstakeTxParams(provider: ContractProvider, params?: { gasAmount?: AmountType; queryId?: QueryIdType; }): Promise; sendUnstake(provider: ContractProvider, via: Sender, params: Parameters[1]): Promise; /** * @returns structure containing current state of the farm NFT * * @property {number} status Status of the contract: uninitialized `0`, active `1`, unstaked `2`, claiming `3` * @property {boolean} isSoulbound If nft is soulbound * @property {bigint} stakedTokens Amount of staked tokens * @property {bigint} claimedPerUnitNanorewards `accrued_per_unit_nanorewards` at the time the user made the stake or last claimed rewards */ getFarmingData(provider: ContractProvider): Promise<{ status: number; isSoulbound: boolean; stakedTokens: bigint; claimedPerUnitNanorewards: bigint; }>; } export { FarmNftItemV1, type FarmNftItemV1Options };