import { ethers } from "ethers";
import type { CallbackType } from "../../../utils/ethers/contractHelper";
import { LandId } from "../../../config/constants";
import { TransactionResponse } from "@ethersproject/providers";
export declare type SlotType = 0 | 1 | 2 | 3;
/**
 * PVE Team Join
 * @param signer Ethers signer
 * @param slot Slot
 * @param tokenId Apostle token id
 * @param callback Callback
 */
export declare const pveTeamJoin: (landId: LandId, signer: ethers.Signer, slot: SlotType, tokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * PVE Team Joins
 * @param signer Ethers signer
 * @param slots Slot
 * @param tokenIds Apostles token id
 * @param callback Callback
 */
export declare const pveTeamJoins: (landId: LandId, signer: ethers.Signer, slots: SlotType[], tokenIds: string[], callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * PVE Team Exit
 * @param signer Ethers signer
 * @param tokenId Apostle token id
 * @param callback Callback
 */
export declare const pveTeamExit: (landId: LandId, signer: ethers.Signer, tokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * PVE Team Exits
 * @param signer Ethers signer
 * @param tokenIds Apostles token id
 * @param callback Callback
 */
export declare const pveTeamExits: (landId: LandId, signer: ethers.Signer, tokenIds: string[], callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * PVE Team Swap
 * @param signer Ethers signer
 * @param slot Slot
 * @param newTokenId Apostle token id
 * @param callback Callback
 */
export declare const pveTeamSwap: (landId: LandId, signer: ethers.Signer, slot: SlotType, newTokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * PVE Team Evict (Force exit after the end of the lease period)
 * @param signer Ethers signer
 * @param tokenId Apostle token id
 * @param callback Callback
 */
export declare const pveTeamEvict: (landId: LandId, signer: ethers.Signer, tokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * PVE Team At
 * @param provider Ethers provider
 * @param user Account address
 * @param slot Slot
 * @param callback Callback
 * @returns Apostle token id or hex 0
 */
export declare const pveTeamAt: (landId: LandId, provider: ethers.providers.Provider, user: string, slot: SlotType, callback?: CallbackType | undefined) => Promise<string>;
/**
 * PVE Team Exist
 * @param provider Ethers provider
 * @param user Account address
 * @param slot Slot
 * @param callback Callback
 * @returns Boolean true or false
 */
export declare const pveTeamExist: (landId: LandId, provider: ethers.providers.Provider, user: string, slot: SlotType, callback?: CallbackType | undefined) => Promise<boolean>;
export declare const pveForgeBatch: (landId: LandId, signer: ethers.Signer, equipmentTypeList: number[], rarityList: number[], tokenContractAddressList: string[], callback?: CallbackType | undefined) => Promise<TransactionResponse>;
