import { ethers } from "ethers";
import type { GoldrushEventInfoType } from "../../../types";
import type { CallbackType } from "../../../utils/tronweb/contractHelper";
import { LandId } from "../../../config/constants";
import { TransactionResponse } from "@ethersproject/providers";
/**
 * Goldrush Join
 * @param signer Ethers signer
 * @param eventId The event id which to join
 * @param landTokenId The land token id which to join
 * @param amount The ring amount which to submit
 * @param subAddr The dvm address for receiving the new land
 * @param callback Callback
 */
export declare const goldRushRaffleJoin: (landId: LandId, signer: ethers.Signer, eventId: number, landTokenId: string, amount: string, subAddr: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Goldrush Change Amount
 * @param signer Ethers signer
 * @param eventId Event id
 * @param landTokenId Land token id
 * @param amount Amount (to change)
 * @param callback Callback
 */
export declare const goldRushRaffleChangeAmount: (landId: LandId, signer: ethers.Signer, eventId: number, landTokenId: string, amount: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Goldrush Change Subaddress
 * @param signer Ethers signer
 * @param eventId Event id
 * @param landTokenId Land token id
 * @param subAddr Sub address (to change)
 * @param callback Callback
 */
export declare const goldRushRaffleChangeSubAddr: (landId: LandId, signer: ethers.Signer, eventId: number, landTokenId: string, subAddr: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Goldrush Change Info
 * @param signer Ethers signer
 * @param eventId Event id
 * @param landTokenId Land token id
 * @param amount Amount (to change)
 * @param subAddr Sub address (to change)
 * @param callback Callback
 */
export declare const goldRushRaffleChangeInfo: (landId: LandId, signer: ethers.Signer, eventId: number, landTokenId: string, amount: string, subAddr: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Goldrush Exit
 * @param signer Ethers signer
 * @param eventId Event id
 * @param landTokenId Land token id
 * @param callback Callback
 */
export declare const goldRushRaffleExit: (landId: LandId, signer: ethers.Signer, eventId: number, landTokenId: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Goldrush Draw
 * @param signer Ethers signer
 * @param eventId Event id
 * @param landTokenId Land token id
 * @param isWon Is won or not
 * @param param4 hashmessage, v, r, s
 * @param callback Callback
 */
export declare const goldRushRaffleDraw: (landId: LandId, signer: ethers.Signer, eventId: number, landTokenId: string, isWon: boolean, { hashmessage, v, r, s }: {
    hashmessage: string;
    v: number;
    r: string;
    s: string;
}, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
/**
 * Goldrush History
 * @param provider Ethers provider
 * @param eventId Event id
 * @param landTokenId Land token id
 * @param callback Callback
 * @returns String balance or '0'
 */
export declare const goldRushRaffleGetHistory: (landId: LandId, provider: ethers.providers.Provider, eventId: number, landTokenId: string, callback?: CallbackType | undefined) => Promise<string>;
export declare const goldRushRaffleGetEvents: (landId: LandId, provider: ethers.providers.Provider, callback?: CallbackType | undefined) => Promise<GoldrushEventInfoType[]>;
