import { ethers } from "ethers";
import { CallbackType } from "../../../utils/ethers/contractHelper";
import { LandId } from "../../../config/constants";
import { TransactionResponse } from "@ethersproject/providers";
/**
 * Land Bid With Token
 * @param signer Ethers signer
 * @param landTokenId Land token id
 * @param referrer Referrer
 * @param amount Amount of price in RING token
 * @param callback Callback
 */
export declare const landBidWithToken: (landId: LandId, signer: ethers.Signer, landTokenId: string, referrer: string | null, amount: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Land Available Resources
 * @param provider Ethers provider
 * @param tokenId Token id
 * @param resources Resources
 * @param callback Callback
 * @returns String[]
 */
export declare const landGetAvailableResources: (landId: LandId, provider: ethers.providers.Provider, tokenId: string, resources: string[], callback?: CallbackType | undefined) => Promise<string[]>;
/**
 * Land Batch Claim Land Resource
 * @param signer Ethers signer
 * @param tokenIds Token ids
 * @param callback Callback
 */
export declare const landBatchClaimLandResource: (landId: LandId, signer: ethers.Signer, tokenIds: string[], callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Returns the current price of an auction.
 * @param provider Ethers signer
 * @param tokenId Token Id
 * @param callback Callback
 * @returns any
 */
export declare const landGetCurrentPriceByTokenId: (landId: LandId, provider: ethers.providers.Provider, tokenId: string, callback?: CallbackType | undefined) => Promise<string>;
/**
 * Sell land asset
 * @param signer Ethers signer
 * @param from
 * @param tokenId - Land tokenId
 * @param start - start price
 * @param end - end price
 * @param duration - bid duration time in second
 * @param callback Callback
 * @returns {Promise<void>}
 */
export declare const landAskWithToken: (landId: LandId, signer: ethers.Signer, from: string, tokenId: string, startPrice: string, endPrice: string, duration: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Cancel a land auction.
 * @param landId Land Id
 * @param signer Signer
 * @param tokenId Id of the Land
 * @param callback Callback
 * @returns any
 */
export declare const landCancelAskWithToken: (landId: LandId, signer: ethers.Signer, tokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Get Avaliable item resources.
 * @param landId Land Id
 * @param provider Provider
 * @param porpsContractAddress Item contract address
 * @param tokenId Id of item
 * @param resourcesContractAddress Array of resources contract address
 * @param callback Callback
 * @returns any
 */
export declare const landGetAvailableItemResources: (landId: LandId, provider: ethers.providers.Provider, porpsContractAddress: string, tokenId: string, resourcesContractAddress: string[], callback?: CallbackType | undefined) => Promise<string[]>;
/**
 * Batch claim item resource.
 * @param landId Land Id
 * @param signer Signer
 * @param drillContractAddress drill contract address
 * @param tokenIds Array of drill token Ids
 * @param callback Callback
 * @returns any
 */
export declare const landBatchClaimItemResource: (landId: LandId, signer: ethers.Signer, drillContractAddress: string[], tokenIds: string[], callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Claim item resource.
 * @param landId Land Id
 * @param signer Signer
 * @param drillContractAddress Drill contract address
 * @param tokenId Token Id
 * @param callback Callback
 * @returns any
 */
export declare const landClaimItemResource: (landId: LandId, signer: ethers.Signer, drillContractAddress: string, tokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Transfer land
 * @param landId Land Id
 * @param signer Signer
 * @param from Land owner
 * @param to Recipient
 * @param tokenId Token Id
 * @param callback Callback
 * @returns any
 */
export declare const landTransfer: (landId: LandId, signer: ethers.Signer, from: string, to: string, tokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Claim land asset
 * @param landId Land Id
 * @param signer Signer
 * @param landTokenId Land token Id
 * @param callback Callback
 * @returns any
 */
export declare const landClaimLand: (landId: LandId, signer: ethers.Signer, landTokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
