import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common.js";
export interface BansheesStakingInterface extends utils.Interface {
    functions: {
        "EMISSION_RATE()": FunctionFragment;
        "bansheesContract()": FunctionFragment;
        "bansheesRaffle()": FunctionFragment;
        "calculateTokens(uint256)": FunctionFragment;
        "calculateTokensForBatch(address)": FunctionFragment;
        "getAvailableFreeTickets(address)": FunctionFragment;
        "getStakedTokensOfWallet(address)": FunctionFragment;
        "giveFreeTickets(address,uint256)": FunctionFragment;
        "initialize(address,address,address,uint256)": FunctionFragment;
        "lastTicketTimestamp(address)": FunctionFragment;
        "onERC721Received(address,address,uint256,bytes)": FunctionFragment;
        "owner()": FunctionFragment;
        "redeemFreeTickets()": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "returnStakedTokens(address)": FunctionFragment;
        "rewardToken()": FunctionFragment;
        "setEmissionRate(uint256)": FunctionFragment;
        "setRaffleContractt(address)": FunctionFragment;
        "stakeSwitch()": FunctionFragment;
        "stakeToken(uint256[])": FunctionFragment;
        "stakedTokensOfWallet(address,uint256)": FunctionFragment;
        "stakingOn()": FunctionFragment;
        "tokenLastStakedAt(uint256)": FunctionFragment;
        "tokenStakedAt(uint256)": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "unstakeToken(uint256[])": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "EMISSION_RATE" | "bansheesContract" | "bansheesRaffle" | "calculateTokens" | "calculateTokensForBatch" | "getAvailableFreeTickets" | "getStakedTokensOfWallet" | "giveFreeTickets" | "initialize" | "lastTicketTimestamp" | "onERC721Received" | "owner" | "redeemFreeTickets" | "renounceOwnership" | "returnStakedTokens" | "rewardToken" | "setEmissionRate" | "setRaffleContractt" | "stakeSwitch" | "stakeToken" | "stakedTokensOfWallet" | "stakingOn" | "tokenLastStakedAt" | "tokenStakedAt" | "transferOwnership" | "unstakeToken"): FunctionFragment;
    encodeFunctionData(functionFragment: "EMISSION_RATE", values?: undefined): string;
    encodeFunctionData(functionFragment: "bansheesContract", values?: undefined): string;
    encodeFunctionData(functionFragment: "bansheesRaffle", values?: undefined): string;
    encodeFunctionData(functionFragment: "calculateTokens", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "calculateTokensForBatch", values: [string]): string;
    encodeFunctionData(functionFragment: "getAvailableFreeTickets", values: [string]): string;
    encodeFunctionData(functionFragment: "getStakedTokensOfWallet", values: [string]): string;
    encodeFunctionData(functionFragment: "giveFreeTickets", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "initialize", values: [string, string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "lastTicketTimestamp", values: [string]): string;
    encodeFunctionData(functionFragment: "onERC721Received", values: [string, string, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "redeemFreeTickets", values?: undefined): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "returnStakedTokens", values: [string]): string;
    encodeFunctionData(functionFragment: "rewardToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "setEmissionRate", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setRaffleContractt", values: [string]): string;
    encodeFunctionData(functionFragment: "stakeSwitch", values?: undefined): string;
    encodeFunctionData(functionFragment: "stakeToken", values: [BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "stakedTokensOfWallet", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "stakingOn", values?: undefined): string;
    encodeFunctionData(functionFragment: "tokenLastStakedAt", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "tokenStakedAt", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string;
    encodeFunctionData(functionFragment: "unstakeToken", values: [BigNumberish[]]): string;
    decodeFunctionResult(functionFragment: "EMISSION_RATE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "bansheesContract", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "bansheesRaffle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calculateTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calculateTokensForBatch", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAvailableFreeTickets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getStakedTokensOfWallet", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "giveFreeTickets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lastTicketTimestamp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "onERC721Received", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redeemFreeTickets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "returnStakedTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setEmissionRate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setRaffleContractt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakeSwitch", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakeToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakedTokensOfWallet", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakingOn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenLastStakedAt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenStakedAt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unstakeToken", data: BytesLike): Result;
    events: {
        "Initialized(uint8)": EventFragment;
        "LogMessage(string,address)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "Staked(address,uint256,uint256)": EventFragment;
        "Unstaked(address,uint256,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogMessage"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Staked"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Unstaked"): EventFragment;
}
export interface InitializedEventObject {
    version: number;
}
export type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface LogMessageEventObject {
    message: string;
    sender: string;
}
export type LogMessageEvent = TypedEvent<[
    string,
    string
], LogMessageEventObject>;
export type LogMessageEventFilter = TypedEventFilter<LogMessageEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface StakedEventObject {
    wallet: string;
    tokenID: BigNumber;
    stakeTime: BigNumber;
}
export type StakedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], StakedEventObject>;
export type StakedEventFilter = TypedEventFilter<StakedEvent>;
export interface UnstakedEventObject {
    wallet: string;
    tokenID: BigNumber;
    unstakeTime: BigNumber;
}
export type UnstakedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], UnstakedEventObject>;
export type UnstakedEventFilter = TypedEventFilter<UnstakedEvent>;
export interface BansheesStaking extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: BansheesStakingInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        EMISSION_RATE(overrides?: CallOverrides): Promise<[BigNumber]>;
        bansheesContract(overrides?: CallOverrides): Promise<[string]>;
        bansheesRaffle(overrides?: CallOverrides): Promise<[string]>;
        calculateTokens(tokenId: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        calculateTokensForBatch(wallet: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        getAvailableFreeTickets(wallet: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        getStakedTokensOfWallet(wallet: string, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        giveFreeTickets(wallet: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        initialize(_bansheesContract: string, _raffleContract: string, _rewardToken: string, _EMISSION_RATE: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        lastTicketTimestamp(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        redeemFreeTickets(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        returnStakedTokens(wallet: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        rewardToken(overrides?: CallOverrides): Promise<[string]>;
        setEmissionRate(newEmissionRate: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        setRaffleContractt(_raffleContract: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        stakeSwitch(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        stakeToken(tokenIDs: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        stakedTokensOfWallet(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        stakingOn(overrides?: CallOverrides): Promise<[boolean]>;
        tokenLastStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        tokenStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        unstakeToken(tokenIDs: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
    };
    EMISSION_RATE(overrides?: CallOverrides): Promise<BigNumber>;
    bansheesContract(overrides?: CallOverrides): Promise<string>;
    bansheesRaffle(overrides?: CallOverrides): Promise<string>;
    calculateTokens(tokenId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    calculateTokensForBatch(wallet: string, overrides?: CallOverrides): Promise<BigNumber>;
    getAvailableFreeTickets(wallet: string, overrides?: CallOverrides): Promise<BigNumber>;
    getStakedTokensOfWallet(wallet: string, overrides?: CallOverrides): Promise<BigNumber[]>;
    giveFreeTickets(wallet: string, amount: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    initialize(_bansheesContract: string, _raffleContract: string, _rewardToken: string, _EMISSION_RATE: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    lastTicketTimestamp(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
    onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    redeemFreeTickets(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    renounceOwnership(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    returnStakedTokens(wallet: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    rewardToken(overrides?: CallOverrides): Promise<string>;
    setEmissionRate(newEmissionRate: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    setRaffleContractt(_raffleContract: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    stakeSwitch(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    stakeToken(tokenIDs: BigNumberish[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    stakedTokensOfWallet(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    stakingOn(overrides?: CallOverrides): Promise<boolean>;
    tokenLastStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    tokenStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    unstakeToken(tokenIDs: BigNumberish[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    callStatic: {
        EMISSION_RATE(overrides?: CallOverrides): Promise<BigNumber>;
        bansheesContract(overrides?: CallOverrides): Promise<string>;
        bansheesRaffle(overrides?: CallOverrides): Promise<string>;
        calculateTokens(tokenId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        calculateTokensForBatch(wallet: string, overrides?: CallOverrides): Promise<BigNumber>;
        getAvailableFreeTickets(wallet: string, overrides?: CallOverrides): Promise<BigNumber>;
        getStakedTokensOfWallet(wallet: string, overrides?: CallOverrides): Promise<BigNumber[]>;
        giveFreeTickets(wallet: string, amount: BigNumberish, overrides?: CallOverrides): Promise<void>;
        initialize(_bansheesContract: string, _raffleContract: string, _rewardToken: string, _EMISSION_RATE: BigNumberish, overrides?: CallOverrides): Promise<void>;
        lastTicketTimestamp(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        redeemFreeTickets(overrides?: CallOverrides): Promise<void>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        returnStakedTokens(wallet: string, overrides?: CallOverrides): Promise<void>;
        rewardToken(overrides?: CallOverrides): Promise<string>;
        setEmissionRate(newEmissionRate: BigNumberish, overrides?: CallOverrides): Promise<void>;
        setRaffleContractt(_raffleContract: string, overrides?: CallOverrides): Promise<void>;
        stakeSwitch(overrides?: CallOverrides): Promise<void>;
        stakeToken(tokenIDs: BigNumberish[], overrides?: CallOverrides): Promise<void>;
        stakedTokensOfWallet(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        stakingOn(overrides?: CallOverrides): Promise<boolean>;
        tokenLastStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        tokenStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: string, overrides?: CallOverrides): Promise<void>;
        unstakeToken(tokenIDs: BigNumberish[], overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "Initialized(uint8)"(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        "LogMessage(string,address)"(message?: null, sender?: null): LogMessageEventFilter;
        LogMessage(message?: null, sender?: null): LogMessageEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
        "Staked(address,uint256,uint256)"(wallet?: string | null, tokenID?: BigNumberish | null, stakeTime?: BigNumberish | null): StakedEventFilter;
        Staked(wallet?: string | null, tokenID?: BigNumberish | null, stakeTime?: BigNumberish | null): StakedEventFilter;
        "Unstaked(address,uint256,uint256)"(wallet?: string | null, tokenID?: BigNumberish | null, unstakeTime?: BigNumberish | null): UnstakedEventFilter;
        Unstaked(wallet?: string | null, tokenID?: BigNumberish | null, unstakeTime?: BigNumberish | null): UnstakedEventFilter;
    };
    estimateGas: {
        EMISSION_RATE(overrides?: CallOverrides): Promise<BigNumber>;
        bansheesContract(overrides?: CallOverrides): Promise<BigNumber>;
        bansheesRaffle(overrides?: CallOverrides): Promise<BigNumber>;
        calculateTokens(tokenId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        calculateTokensForBatch(wallet: string, overrides?: CallOverrides): Promise<BigNumber>;
        getAvailableFreeTickets(wallet: string, overrides?: CallOverrides): Promise<BigNumber>;
        getStakedTokensOfWallet(wallet: string, overrides?: CallOverrides): Promise<BigNumber>;
        giveFreeTickets(wallet: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        initialize(_bansheesContract: string, _raffleContract: string, _rewardToken: string, _EMISSION_RATE: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        lastTicketTimestamp(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        redeemFreeTickets(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        returnStakedTokens(wallet: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        rewardToken(overrides?: CallOverrides): Promise<BigNumber>;
        setEmissionRate(newEmissionRate: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        setRaffleContractt(_raffleContract: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        stakeSwitch(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        stakeToken(tokenIDs: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        stakedTokensOfWallet(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        stakingOn(overrides?: CallOverrides): Promise<BigNumber>;
        tokenLastStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        tokenStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        unstakeToken(tokenIDs: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        EMISSION_RATE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bansheesContract(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bansheesRaffle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateTokens(tokenId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateTokensForBatch(wallet: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAvailableFreeTickets(wallet: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStakedTokensOfWallet(wallet: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        giveFreeTickets(wallet: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        initialize(_bansheesContract: string, _raffleContract: string, _rewardToken: string, _EMISSION_RATE: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        lastTicketTimestamp(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        onERC721Received(arg0: string, arg1: string, arg2: BigNumberish, arg3: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        redeemFreeTickets(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        returnStakedTokens(wallet: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        rewardToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setEmissionRate(newEmissionRate: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        setRaffleContractt(_raffleContract: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        stakeSwitch(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        stakeToken(tokenIDs: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        stakedTokensOfWallet(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stakingOn(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenLastStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenStakedAt(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        unstakeToken(tokenIDs: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
    };
}
