import { Token } from "../libs/uniswap";
import { ethers } from "ethers";
import { LandId } from "../config/constants";
export declare const elements: readonly ["gold", "wood", "water", "fire", "soil"];
export declare type ElementType = typeof elements[number];
export declare type ContractNameType = ElementType | "ring" | "kton" | "apostleAuction" | "apostleClockAuctionV3" | "apostleSiringAuctionV3" | "apostleTokenUseV2" | "apostleBaseV3" | "apostleBaseV5" | "goldRushRaffle" | "landClockAuctionV3" | "apostleLandResource" | "apostleLandResourceV2" | "pveTeam" | "objectOwnership" | "settingsRegistry" | "lottery" | "userPoints" | "furnaceTreasure" | "furnaceItemBase" | "furnaceTakeback" | "uniswapExchange" | "liquidityStaker" | "liquidityStakerFactory" | "material" | "goldElementRaffle" | "woodElementRaffle" | "waterElementRaffle" | "fireElementRaffle" | "soilElementRaffle" | "pveCraft";
export declare type ContractAddressAndAbiType = {
    address: string;
    interface: ethers.ContractInterface;
};
export declare type AddressesType = {
    [key: string]: string;
    TOKEN_RING: string;
    TOKEN_KTON: string;
    TOKEN_WETH: string;
    ELEMENT_GOLD: string;
    ELEMENT_WOOD: string;
    ELEMENT_WATER: string;
    ELEMENT_FIRE: string;
    ELEMENT_SOIL: string;
    GOLD_RUSH_RAFFLE: string;
    PVETEAM_PROXY: string;
    MATERIAL_PROXY: string;
    MATERIALTAKEBACK_PROXY: string;
    CRAFTBASE_PROXY: string;
    LAND_CLOCK_AUCTION: string;
    APOSTLE_CLOCK_AUCTION: string;
    SIRING_CLOCK_AUCTION: string;
    APOSTLE_BASE: string;
    LAND_RESOURCE: string;
    TOKEN_USE: string;
    OBJECTOWNERSHIP: string;
    SETTINGSREGISTRY: string;
    POINTS_REWARD_POOL: string;
    TOKEN_USER_POINTS: string;
    FURNACE_TREASURE: string;
    FURNACE_ITEM_BASE: string;
    FURNACE_TAKEBACK: string;
    UNISWAP_EXCHANGE: string;
    STAKINGREWARDSFACTORY: string;
    GOLDRAFFLEPOOL_PROXY: string;
    WOODRAFFLEPOOL_PROXY: string;
    WATERRAFFLEPOOL_PROXY: string;
    FIRERAFFLEPOOL_PROXY: string;
    SOILRAFFLEPOOL_PROXY: string;
};
export declare type TokenListType = {
    RING?: Token;
    KTON?: Token;
    GOLD?: Token;
    WOOD?: Token;
    WATER?: Token;
    FIRE?: Token;
    SOIL?: Token;
    WETH?: Token;
};
export declare type GoldrushEventInfoType = {
    eventId: number;
    fromLandId: number;
    toLandId: number;
    startTime: number;
    endTime: number;
    finalTime: number;
    expireTime: number;
};
export declare type LandConfig = Partial<Record<LandId, {
    address: AddressesType;
    tokens?: TokenListType;
}>>;
