import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, 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, PromiseOrValue } from './common';
export interface HexInterface extends utils.Interface {
    functions: {
        'allocatedSupply()': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'btcAddressClaim(uint256,bytes32[],address,bytes32,bytes32,uint8,uint8,bytes32,bytes32,uint256,address)': FunctionFragment;
        'btcAddressClaims(bytes20)': FunctionFragment;
        'btcAddressIsClaimable(bytes20,uint256,bytes32[])': FunctionFragment;
        'btcAddressIsValid(bytes20,uint256,bytes32[])': FunctionFragment;
        'claimMessageMatchesSignature(address,bytes32,bytes32,bytes32,uint8,uint8,bytes32,bytes32)': FunctionFragment;
        'currentDay()': FunctionFragment;
        'dailyData(uint256)': FunctionFragment;
        'dailyDataRange(uint256,uint256)': FunctionFragment;
        'dailyDataUpdate(uint256)': FunctionFragment;
        'decimals()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'globalInfo()': FunctionFragment;
        'globals()': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'merkleProofIsValid(bytes32,bytes32[])': FunctionFragment;
        'name()': FunctionFragment;
        'pubKeyToBtcAddress(bytes32,bytes32,uint8)': FunctionFragment;
        'pubKeyToEthAddress(bytes32,bytes32)': FunctionFragment;
        'stakeCount(address)': FunctionFragment;
        'stakeEnd(uint256,uint40)': FunctionFragment;
        'stakeGoodAccounting(address,uint256,uint40)': FunctionFragment;
        'stakeLists(address,uint256)': FunctionFragment;
        'stakeStart(uint256,uint256)': FunctionFragment;
        'symbol()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'xfLobby(uint256)': FunctionFragment;
        'xfLobbyEnter(address)': FunctionFragment;
        'xfLobbyEntry(address,uint256)': FunctionFragment;
        'xfLobbyExit(uint256,uint256)': FunctionFragment;
        'xfLobbyFlush()': FunctionFragment;
        'xfLobbyMembers(uint256,address)': FunctionFragment;
        'xfLobbyPendingDays(address)': FunctionFragment;
        'xfLobbyRange(uint256,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'allocatedSupply' | 'allowance' | 'approve' | 'balanceOf' | 'btcAddressClaim' | 'btcAddressClaims' | 'btcAddressIsClaimable' | 'btcAddressIsValid' | 'claimMessageMatchesSignature' | 'currentDay' | 'dailyData' | 'dailyDataRange' | 'dailyDataUpdate' | 'decimals' | 'decreaseAllowance' | 'globalInfo' | 'globals' | 'increaseAllowance' | 'merkleProofIsValid' | 'name' | 'pubKeyToBtcAddress' | 'pubKeyToEthAddress' | 'stakeCount' | 'stakeEnd' | 'stakeGoodAccounting' | 'stakeLists' | 'stakeStart' | 'symbol' | 'totalSupply' | 'transfer' | 'transferFrom' | 'xfLobby' | 'xfLobbyEnter' | 'xfLobbyEntry' | 'xfLobbyExit' | 'xfLobbyFlush' | 'xfLobbyMembers' | 'xfLobbyPendingDays' | 'xfLobbyRange'): FunctionFragment;
    encodeFunctionData(functionFragment: 'allocatedSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'btcAddressClaim', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>[],
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'btcAddressClaims', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'btcAddressIsClaimable', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>[]]): string;
    encodeFunctionData(functionFragment: 'btcAddressIsValid', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>[]]): string;
    encodeFunctionData(functionFragment: 'claimMessageMatchesSignature', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'currentDay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'dailyData', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'dailyDataRange', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'dailyDataUpdate', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'globalInfo', values?: undefined): string;
    encodeFunctionData(functionFragment: 'globals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'merkleProofIsValid', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>[]]): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pubKeyToBtcAddress', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'pubKeyToEthAddress', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'stakeCount', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'stakeEnd', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeGoodAccounting', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeLists', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeStart', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transfer', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'xfLobby', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'xfLobbyEnter', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'xfLobbyEntry', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'xfLobbyExit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'xfLobbyFlush', values?: undefined): string;
    encodeFunctionData(functionFragment: 'xfLobbyMembers', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'xfLobbyPendingDays', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'xfLobbyRange', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'allocatedSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'btcAddressClaim', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'btcAddressClaims', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'btcAddressIsClaimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'btcAddressIsValid', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimMessageMatchesSignature', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentDay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'dailyData', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'dailyDataRange', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'dailyDataUpdate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'globalInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'globals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'merkleProofIsValid', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pubKeyToBtcAddress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pubKeyToEthAddress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeCount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeEnd', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeGoodAccounting', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeLists', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeStart', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xfLobby', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xfLobbyEnter', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xfLobbyEntry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xfLobbyExit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xfLobbyFlush', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xfLobbyMembers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xfLobbyPendingDays', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xfLobbyRange', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'Claim(uint256,uint256,bytes20,address,address)': EventFragment;
        'ClaimAssist(uint256,uint256,uint256,address)': EventFragment;
        'DailyDataUpdate(uint256,address)': EventFragment;
        'ShareRateChange(uint256,uint40)': EventFragment;
        'StakeEnd(uint256,uint256,address,uint40)': EventFragment;
        'StakeGoodAccounting(uint256,uint256,address,uint40,address)': EventFragment;
        'StakeStart(uint256,address,uint40)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'XfLobbyEnter(uint256,address,uint256,address)': EventFragment;
        'XfLobbyExit(uint256,address,uint256,address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Claim'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ClaimAssist'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DailyDataUpdate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ShareRateChange'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakeEnd'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakeGoodAccounting'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakeStart'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'XfLobbyEnter'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'XfLobbyExit'): EventFragment;
}
export interface ApprovalEventObject {
    owner: string;
    spender: string;
    value: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface ClaimEventObject {
    data0: BigNumber;
    data1: BigNumber;
    btcAddr: string;
    claimToAddr: string;
    referrerAddr: string;
}
export declare type ClaimEvent = TypedEvent<[BigNumber, BigNumber, string, string, string], ClaimEventObject>;
export declare type ClaimEventFilter = TypedEventFilter<ClaimEvent>;
export interface ClaimAssistEventObject {
    data0: BigNumber;
    data1: BigNumber;
    data2: BigNumber;
    senderAddr: string;
}
export declare type ClaimAssistEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, string], ClaimAssistEventObject>;
export declare type ClaimAssistEventFilter = TypedEventFilter<ClaimAssistEvent>;
export interface DailyDataUpdateEventObject {
    data0: BigNumber;
    updaterAddr: string;
}
export declare type DailyDataUpdateEvent = TypedEvent<[BigNumber, string], DailyDataUpdateEventObject>;
export declare type DailyDataUpdateEventFilter = TypedEventFilter<DailyDataUpdateEvent>;
export interface ShareRateChangeEventObject {
    data0: BigNumber;
    stakeId: number;
}
export declare type ShareRateChangeEvent = TypedEvent<[BigNumber, number], ShareRateChangeEventObject>;
export declare type ShareRateChangeEventFilter = TypedEventFilter<ShareRateChangeEvent>;
export interface StakeEndEventObject {
    data0: BigNumber;
    data1: BigNumber;
    stakerAddr: string;
    stakeId: number;
}
export declare type StakeEndEvent = TypedEvent<[BigNumber, BigNumber, string, number], StakeEndEventObject>;
export declare type StakeEndEventFilter = TypedEventFilter<StakeEndEvent>;
export interface StakeGoodAccountingEventObject {
    data0: BigNumber;
    data1: BigNumber;
    stakerAddr: string;
    stakeId: number;
    senderAddr: string;
}
export declare type StakeGoodAccountingEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    string,
    number,
    string
], StakeGoodAccountingEventObject>;
export declare type StakeGoodAccountingEventFilter = TypedEventFilter<StakeGoodAccountingEvent>;
export interface StakeStartEventObject {
    data0: BigNumber;
    stakerAddr: string;
    stakeId: number;
}
export declare type StakeStartEvent = TypedEvent<[BigNumber, string, number], StakeStartEventObject>;
export declare type StakeStartEventFilter = TypedEventFilter<StakeStartEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    value: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface XfLobbyEnterEventObject {
    data0: BigNumber;
    memberAddr: string;
    entryId: BigNumber;
    referrerAddr: string;
}
export declare type XfLobbyEnterEvent = TypedEvent<[BigNumber, string, BigNumber, string], XfLobbyEnterEventObject>;
export declare type XfLobbyEnterEventFilter = TypedEventFilter<XfLobbyEnterEvent>;
export interface XfLobbyExitEventObject {
    data0: BigNumber;
    memberAddr: string;
    entryId: BigNumber;
    referrerAddr: string;
}
export declare type XfLobbyExitEvent = TypedEvent<[BigNumber, string, BigNumber, string], XfLobbyExitEventObject>;
export declare type XfLobbyExitEventFilter = TypedEventFilter<XfLobbyExitEvent>;
export interface Hex extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: HexInterface;
    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: {
        allocatedSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        btcAddressClaim(rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], claimToAddr: PromiseOrValue<string>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, autoStakeDays: PromiseOrValue<BigNumberish>, referrerAddr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        btcAddressClaims(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        btcAddressIsClaimable(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<[boolean]>;
        btcAddressIsValid(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<[boolean]>;
        claimMessageMatchesSignature(claimToAddr: PromiseOrValue<string>, claimParamHash: PromiseOrValue<BytesLike>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        currentDay(overrides?: CallOverrides): Promise<[BigNumber]>;
        dailyData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            dayPayoutTotal: BigNumber;
            dayStakeSharesTotal: BigNumber;
            dayUnclaimedSatoshisTotal: BigNumber;
        }>;
        dailyDataRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber[]] & {
            list: BigNumber[];
        }>;
        dailyDataUpdate(beforeDay: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        globalInfo(overrides?: CallOverrides): Promise<[BigNumber[]]>;
        globals(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            number,
            BigNumber,
            number,
            BigNumber
        ] & {
            lockedHeartsTotal: BigNumber;
            nextStakeSharesTotal: BigNumber;
            shareRate: number;
            stakePenaltyTotal: BigNumber;
            dailyDataCount: number;
            stakeSharesTotal: BigNumber;
            latestStakeId: number;
            claimStats: BigNumber;
        }>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        merkleProofIsValid(merkleLeaf: PromiseOrValue<BytesLike>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<[boolean]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        pubKeyToBtcAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        pubKeyToEthAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        stakeCount(stakerAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        stakeEnd(stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeGoodAccounting(stakerAddr: PromiseOrValue<string>, stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeLists(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            number,
            BigNumber,
            BigNumber,
            number,
            number,
            number,
            boolean
        ] & {
            stakeId: number;
            stakedHearts: BigNumber;
            stakeShares: BigNumber;
            lockedDay: number;
            stakedDays: number;
            unlockedDay: number;
            isAutoStake: boolean;
        }>;
        stakeStart(newStakedHearts: PromiseOrValue<BigNumberish>, newStakedDays: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        xfLobby(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        xfLobbyEnter(referrerAddr: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        xfLobbyEntry(memberAddr: PromiseOrValue<string>, entryId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
            rawAmount: BigNumber;
            referrerAddr: string;
        }>;
        xfLobbyExit(enterDay: PromiseOrValue<BigNumberish>, count: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        xfLobbyFlush(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        xfLobbyMembers(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number, number] & {
            headIndex: number;
            tailIndex: number;
        }>;
        xfLobbyPendingDays(memberAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]] & {
            words: [BigNumber, BigNumber];
        }>;
        xfLobbyRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber[]] & {
            list: BigNumber[];
        }>;
    };
    allocatedSupply(overrides?: CallOverrides): Promise<BigNumber>;
    allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    btcAddressClaim(rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], claimToAddr: PromiseOrValue<string>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, autoStakeDays: PromiseOrValue<BigNumberish>, referrerAddr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    btcAddressClaims(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    btcAddressIsClaimable(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<boolean>;
    btcAddressIsValid(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<boolean>;
    claimMessageMatchesSignature(claimToAddr: PromiseOrValue<string>, claimParamHash: PromiseOrValue<BytesLike>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    currentDay(overrides?: CallOverrides): Promise<BigNumber>;
    dailyData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        dayPayoutTotal: BigNumber;
        dayStakeSharesTotal: BigNumber;
        dayUnclaimedSatoshisTotal: BigNumber;
    }>;
    dailyDataRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    dailyDataUpdate(beforeDay: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    globalInfo(overrides?: CallOverrides): Promise<BigNumber[]>;
    globals(overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        number,
        BigNumber,
        number,
        BigNumber,
        number,
        BigNumber
    ] & {
        lockedHeartsTotal: BigNumber;
        nextStakeSharesTotal: BigNumber;
        shareRate: number;
        stakePenaltyTotal: BigNumber;
        dailyDataCount: number;
        stakeSharesTotal: BigNumber;
        latestStakeId: number;
        claimStats: BigNumber;
    }>;
    increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    merkleProofIsValid(merkleLeaf: PromiseOrValue<BytesLike>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<boolean>;
    name(overrides?: CallOverrides): Promise<string>;
    pubKeyToBtcAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    pubKeyToEthAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    stakeCount(stakerAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    stakeEnd(stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeGoodAccounting(stakerAddr: PromiseOrValue<string>, stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeLists(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        number,
        BigNumber,
        BigNumber,
        number,
        number,
        number,
        boolean
    ] & {
        stakeId: number;
        stakedHearts: BigNumber;
        stakeShares: BigNumber;
        lockedDay: number;
        stakedDays: number;
        unlockedDay: number;
        isAutoStake: boolean;
    }>;
    stakeStart(newStakedHearts: PromiseOrValue<BigNumberish>, newStakedDays: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    symbol(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    xfLobby(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    xfLobbyEnter(referrerAddr: PromiseOrValue<string>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    xfLobbyEntry(memberAddr: PromiseOrValue<string>, entryId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
        rawAmount: BigNumber;
        referrerAddr: string;
    }>;
    xfLobbyExit(enterDay: PromiseOrValue<BigNumberish>, count: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    xfLobbyFlush(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    xfLobbyMembers(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number, number] & {
        headIndex: number;
        tailIndex: number;
    }>;
    xfLobbyPendingDays(memberAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    xfLobbyRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    callStatic: {
        allocatedSupply(overrides?: CallOverrides): Promise<BigNumber>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        btcAddressClaim(rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], claimToAddr: PromiseOrValue<string>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, autoStakeDays: PromiseOrValue<BigNumberish>, referrerAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        btcAddressClaims(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        btcAddressIsClaimable(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<boolean>;
        btcAddressIsValid(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<boolean>;
        claimMessageMatchesSignature(claimToAddr: PromiseOrValue<string>, claimParamHash: PromiseOrValue<BytesLike>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        currentDay(overrides?: CallOverrides): Promise<BigNumber>;
        dailyData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            dayPayoutTotal: BigNumber;
            dayStakeSharesTotal: BigNumber;
            dayUnclaimedSatoshisTotal: BigNumber;
        }>;
        dailyDataRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        dailyDataUpdate(beforeDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        globalInfo(overrides?: CallOverrides): Promise<BigNumber[]>;
        globals(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            number,
            BigNumber,
            number,
            BigNumber
        ] & {
            lockedHeartsTotal: BigNumber;
            nextStakeSharesTotal: BigNumber;
            shareRate: number;
            stakePenaltyTotal: BigNumber;
            dailyDataCount: number;
            stakeSharesTotal: BigNumber;
            latestStakeId: number;
            claimStats: BigNumber;
        }>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        merkleProofIsValid(merkleLeaf: PromiseOrValue<BytesLike>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<boolean>;
        name(overrides?: CallOverrides): Promise<string>;
        pubKeyToBtcAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        pubKeyToEthAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        stakeCount(stakerAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        stakeEnd(stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakeGoodAccounting(stakerAddr: PromiseOrValue<string>, stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakeLists(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            number,
            BigNumber,
            BigNumber,
            number,
            number,
            number,
            boolean
        ] & {
            stakeId: number;
            stakedHearts: BigNumber;
            stakeShares: BigNumber;
            lockedDay: number;
            stakedDays: number;
            unlockedDay: number;
            isAutoStake: boolean;
        }>;
        stakeStart(newStakedHearts: PromiseOrValue<BigNumberish>, newStakedDays: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        symbol(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        xfLobby(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        xfLobbyEnter(referrerAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        xfLobbyEntry(memberAddr: PromiseOrValue<string>, entryId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
            rawAmount: BigNumber;
            referrerAddr: string;
        }>;
        xfLobbyExit(enterDay: PromiseOrValue<BigNumberish>, count: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        xfLobbyFlush(overrides?: CallOverrides): Promise<void>;
        xfLobbyMembers(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number, number] & {
            headIndex: number;
            tailIndex: number;
        }>;
        xfLobbyPendingDays(memberAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        xfLobbyRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    };
    filters: {
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        'Claim(uint256,uint256,bytes20,address,address)'(data0?: null, data1?: null, btcAddr?: PromiseOrValue<BytesLike> | null, claimToAddr?: PromiseOrValue<string> | null, referrerAddr?: PromiseOrValue<string> | null): ClaimEventFilter;
        Claim(data0?: null, data1?: null, btcAddr?: PromiseOrValue<BytesLike> | null, claimToAddr?: PromiseOrValue<string> | null, referrerAddr?: PromiseOrValue<string> | null): ClaimEventFilter;
        'ClaimAssist(uint256,uint256,uint256,address)'(data0?: null, data1?: null, data2?: null, senderAddr?: PromiseOrValue<string> | null): ClaimAssistEventFilter;
        ClaimAssist(data0?: null, data1?: null, data2?: null, senderAddr?: PromiseOrValue<string> | null): ClaimAssistEventFilter;
        'DailyDataUpdate(uint256,address)'(data0?: null, updaterAddr?: PromiseOrValue<string> | null): DailyDataUpdateEventFilter;
        DailyDataUpdate(data0?: null, updaterAddr?: PromiseOrValue<string> | null): DailyDataUpdateEventFilter;
        'ShareRateChange(uint256,uint40)'(data0?: null, stakeId?: PromiseOrValue<BigNumberish> | null): ShareRateChangeEventFilter;
        ShareRateChange(data0?: null, stakeId?: PromiseOrValue<BigNumberish> | null): ShareRateChangeEventFilter;
        'StakeEnd(uint256,uint256,address,uint40)'(data0?: null, data1?: null, stakerAddr?: PromiseOrValue<string> | null, stakeId?: PromiseOrValue<BigNumberish> | null): StakeEndEventFilter;
        StakeEnd(data0?: null, data1?: null, stakerAddr?: PromiseOrValue<string> | null, stakeId?: PromiseOrValue<BigNumberish> | null): StakeEndEventFilter;
        'StakeGoodAccounting(uint256,uint256,address,uint40,address)'(data0?: null, data1?: null, stakerAddr?: PromiseOrValue<string> | null, stakeId?: PromiseOrValue<BigNumberish> | null, senderAddr?: PromiseOrValue<string> | null): StakeGoodAccountingEventFilter;
        StakeGoodAccounting(data0?: null, data1?: null, stakerAddr?: PromiseOrValue<string> | null, stakeId?: PromiseOrValue<BigNumberish> | null, senderAddr?: PromiseOrValue<string> | null): StakeGoodAccountingEventFilter;
        'StakeStart(uint256,address,uint40)'(data0?: null, stakerAddr?: PromiseOrValue<string> | null, stakeId?: PromiseOrValue<BigNumberish> | null): StakeStartEventFilter;
        StakeStart(data0?: null, stakerAddr?: PromiseOrValue<string> | null, stakeId?: PromiseOrValue<BigNumberish> | null): StakeStartEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        'XfLobbyEnter(uint256,address,uint256,address)'(data0?: null, memberAddr?: PromiseOrValue<string> | null, entryId?: PromiseOrValue<BigNumberish> | null, referrerAddr?: PromiseOrValue<string> | null): XfLobbyEnterEventFilter;
        XfLobbyEnter(data0?: null, memberAddr?: PromiseOrValue<string> | null, entryId?: PromiseOrValue<BigNumberish> | null, referrerAddr?: PromiseOrValue<string> | null): XfLobbyEnterEventFilter;
        'XfLobbyExit(uint256,address,uint256,address)'(data0?: null, memberAddr?: PromiseOrValue<string> | null, entryId?: PromiseOrValue<BigNumberish> | null, referrerAddr?: PromiseOrValue<string> | null): XfLobbyExitEventFilter;
        XfLobbyExit(data0?: null, memberAddr?: PromiseOrValue<string> | null, entryId?: PromiseOrValue<BigNumberish> | null, referrerAddr?: PromiseOrValue<string> | null): XfLobbyExitEventFilter;
    };
    estimateGas: {
        allocatedSupply(overrides?: CallOverrides): Promise<BigNumber>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        btcAddressClaim(rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], claimToAddr: PromiseOrValue<string>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, autoStakeDays: PromiseOrValue<BigNumberish>, referrerAddr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        btcAddressClaims(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        btcAddressIsClaimable(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<BigNumber>;
        btcAddressIsValid(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<BigNumber>;
        claimMessageMatchesSignature(claimToAddr: PromiseOrValue<string>, claimParamHash: PromiseOrValue<BytesLike>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        currentDay(overrides?: CallOverrides): Promise<BigNumber>;
        dailyData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        dailyDataRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        dailyDataUpdate(beforeDay: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        globalInfo(overrides?: CallOverrides): Promise<BigNumber>;
        globals(overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        merkleProofIsValid(merkleLeaf: PromiseOrValue<BytesLike>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        pubKeyToBtcAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pubKeyToEthAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        stakeCount(stakerAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        stakeEnd(stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeGoodAccounting(stakerAddr: PromiseOrValue<string>, stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeLists(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        stakeStart(newStakedHearts: PromiseOrValue<BigNumberish>, newStakedDays: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        xfLobby(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        xfLobbyEnter(referrerAddr: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        xfLobbyEntry(memberAddr: PromiseOrValue<string>, entryId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        xfLobbyExit(enterDay: PromiseOrValue<BigNumberish>, count: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        xfLobbyFlush(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        xfLobbyMembers(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        xfLobbyPendingDays(memberAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        xfLobbyRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        allocatedSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        btcAddressClaim(rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], claimToAddr: PromiseOrValue<string>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, autoStakeDays: PromiseOrValue<BigNumberish>, referrerAddr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        btcAddressClaims(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        btcAddressIsClaimable(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        btcAddressIsValid(btcAddr: PromiseOrValue<BytesLike>, rawSatoshis: PromiseOrValue<BigNumberish>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimMessageMatchesSignature(claimToAddr: PromiseOrValue<string>, claimParamHash: PromiseOrValue<BytesLike>, pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentDay(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        dailyData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        dailyDataRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        dailyDataUpdate(beforeDay: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        globalInfo(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        globals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        merkleProofIsValid(merkleLeaf: PromiseOrValue<BytesLike>, proof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pubKeyToBtcAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, claimFlags: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pubKeyToEthAddress(pubKeyX: PromiseOrValue<BytesLike>, pubKeyY: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stakeCount(stakerAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stakeEnd(stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeGoodAccounting(stakerAddr: PromiseOrValue<string>, stakeIndex: PromiseOrValue<BigNumberish>, stakeIdParam: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeLists(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stakeStart(newStakedHearts: PromiseOrValue<BigNumberish>, newStakedDays: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        xfLobby(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xfLobbyEnter(referrerAddr: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        xfLobbyEntry(memberAddr: PromiseOrValue<string>, entryId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xfLobbyExit(enterDay: PromiseOrValue<BigNumberish>, count: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        xfLobbyFlush(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        xfLobbyMembers(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xfLobbyPendingDays(memberAddr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xfLobbyRange(beginDay: PromiseOrValue<BigNumberish>, endDay: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
