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, PromiseOrValue } from './common';
export interface EscrowThalesInterface extends utils.Interface {
    functions: {
        'NUM_PERIODS()': FunctionFragment;
        'ThalesStakingRewardsPool()': FunctionFragment;
        'acceptOwnership()': FunctionFragment;
        'addToEscrow(address,uint256)': FunctionFragment;
        'addTotalEscrowBalanceNotIncludedInStaking(uint256)': FunctionFragment;
        'airdropContract()': FunctionFragment;
        'claimable(address)': FunctionFragment;
        'currentVestingPeriod()': FunctionFragment;
        'enableTestMode()': FunctionFragment;
        'fixEscrowEntry(address)': FunctionFragment;
        'getStakedEscrowedBalanceForRewards(address)': FunctionFragment;
        'getStakerAmounts(address,uint256)': FunctionFragment;
        'getStakerPeriod(address,uint256)': FunctionFragment;
        'iStakingThales()': FunctionFragment;
        'initNonReentrant()': FunctionFragment;
        'initialize(address,address)': FunctionFragment;
        'lastPauseTime()': FunctionFragment;
        'lastPeriodAddedReward(address)': FunctionFragment;
        'nominateNewOwner(address)': FunctionFragment;
        'nominatedOwner()': FunctionFragment;
        'owner()': FunctionFragment;
        'paused()': FunctionFragment;
        'setAirdropContract(address)': FunctionFragment;
        'setOwner(address)': FunctionFragment;
        'setPaused(bool)': FunctionFragment;
        'setStakingThalesContract(address)': FunctionFragment;
        'setThalesStakingRewardsPool(address)': FunctionFragment;
        'subtractTotalEscrowBalanceNotIncludedInStaking(uint256)': FunctionFragment;
        'totalAccountEscrowedAmount(address)': FunctionFragment;
        'totalEscrowBalanceNotIncludedInStaking()': FunctionFragment;
        'totalEscrowedRewards()': FunctionFragment;
        'transferOwnershipAtInit(address)': FunctionFragment;
        'updateCurrentPeriod()': FunctionFragment;
        'vest(uint256)': FunctionFragment;
        'vestingEntries(address,uint256)': FunctionFragment;
        'vestingToken()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'NUM_PERIODS' | 'ThalesStakingRewardsPool' | 'acceptOwnership' | 'addToEscrow' | 'addTotalEscrowBalanceNotIncludedInStaking' | 'airdropContract' | 'claimable' | 'currentVestingPeriod' | 'enableTestMode' | 'fixEscrowEntry' | 'getStakedEscrowedBalanceForRewards' | 'getStakerAmounts' | 'getStakerPeriod' | 'iStakingThales' | 'initNonReentrant' | 'initialize' | 'lastPauseTime' | 'lastPeriodAddedReward' | 'nominateNewOwner' | 'nominatedOwner' | 'owner' | 'paused' | 'setAirdropContract' | 'setOwner' | 'setPaused' | 'setStakingThalesContract' | 'setThalesStakingRewardsPool' | 'subtractTotalEscrowBalanceNotIncludedInStaking' | 'totalAccountEscrowedAmount' | 'totalEscrowBalanceNotIncludedInStaking' | 'totalEscrowedRewards' | 'transferOwnershipAtInit' | 'updateCurrentPeriod' | 'vest' | 'vestingEntries' | 'vestingToken'): FunctionFragment;
    encodeFunctionData(functionFragment: 'NUM_PERIODS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ThalesStakingRewardsPool', values?: undefined): string;
    encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addToEscrow', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'addTotalEscrowBalanceNotIncludedInStaking', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'airdropContract', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimable', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'currentVestingPeriod', values?: undefined): string;
    encodeFunctionData(functionFragment: 'enableTestMode', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fixEscrowEntry', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getStakedEscrowedBalanceForRewards', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getStakerAmounts', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getStakerPeriod', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'iStakingThales', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initNonReentrant', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initialize', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lastPauseTime', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lastPeriodAddedReward', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'nominateNewOwner', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'nominatedOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setAirdropContract', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setOwner', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setPaused', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setStakingThalesContract', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setThalesStakingRewardsPool', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'subtractTotalEscrowBalanceNotIncludedInStaking', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalAccountEscrowedAmount', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalEscrowBalanceNotIncludedInStaking', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalEscrowedRewards', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferOwnershipAtInit', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'updateCurrentPeriod', values?: undefined): string;
    encodeFunctionData(functionFragment: 'vest', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'vestingEntries', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'vestingToken', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'NUM_PERIODS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ThalesStakingRewardsPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addToEscrow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addTotalEscrowBalanceNotIncludedInStaking', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'airdropContract', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentVestingPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'enableTestMode', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fixEscrowEntry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStakedEscrowedBalanceForRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStakerAmounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStakerPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'iStakingThales', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initNonReentrant', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastPauseTime', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastPeriodAddedReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nominateNewOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nominatedOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setAirdropContract', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPaused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setStakingThalesContract', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setThalesStakingRewardsPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'subtractTotalEscrowBalanceNotIncludedInStaking', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalAccountEscrowedAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalEscrowBalanceNotIncludedInStaking', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalEscrowedRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnershipAtInit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateCurrentPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vest', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vestingEntries', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vestingToken', data: BytesLike): Result;
    events: {
        'AddedToEscrow(address,uint256)': EventFragment;
        'AirdropContractChanged(address)': EventFragment;
        'OwnerChanged(address,address)': EventFragment;
        'OwnerNominated(address)': EventFragment;
        'PauseChanged(bool)': EventFragment;
        'StakingThalesContractChanged(address)': EventFragment;
        'ThalesStakingRewardsPoolChanged(address)': EventFragment;
        'Vested(address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AddedToEscrow'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AirdropContractChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnerChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnerNominated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PauseChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakingThalesContractChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ThalesStakingRewardsPoolChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Vested'): EventFragment;
}
export interface AddedToEscrowEventObject {
    acount: string;
    amount: BigNumber;
}
export declare type AddedToEscrowEvent = TypedEvent<[string, BigNumber], AddedToEscrowEventObject>;
export declare type AddedToEscrowEventFilter = TypedEventFilter<AddedToEscrowEvent>;
export interface AirdropContractChangedEventObject {
    newAddress: string;
}
export declare type AirdropContractChangedEvent = TypedEvent<[string], AirdropContractChangedEventObject>;
export declare type AirdropContractChangedEventFilter = TypedEventFilter<AirdropContractChangedEvent>;
export interface OwnerChangedEventObject {
    oldOwner: string;
    newOwner: string;
}
export declare type OwnerChangedEvent = TypedEvent<[string, string], OwnerChangedEventObject>;
export declare type OwnerChangedEventFilter = TypedEventFilter<OwnerChangedEvent>;
export interface OwnerNominatedEventObject {
    newOwner: string;
}
export declare type OwnerNominatedEvent = TypedEvent<[string], OwnerNominatedEventObject>;
export declare type OwnerNominatedEventFilter = TypedEventFilter<OwnerNominatedEvent>;
export interface PauseChangedEventObject {
    isPaused: boolean;
}
export declare type PauseChangedEvent = TypedEvent<[boolean], PauseChangedEventObject>;
export declare type PauseChangedEventFilter = TypedEventFilter<PauseChangedEvent>;
export interface StakingThalesContractChangedEventObject {
    newAddress: string;
}
export declare type StakingThalesContractChangedEvent = TypedEvent<[string], StakingThalesContractChangedEventObject>;
export declare type StakingThalesContractChangedEventFilter = TypedEventFilter<StakingThalesContractChangedEvent>;
export interface ThalesStakingRewardsPoolChangedEventObject {
    thalesStakingRewardsPool: string;
}
export declare type ThalesStakingRewardsPoolChangedEvent = TypedEvent<[string], ThalesStakingRewardsPoolChangedEventObject>;
export declare type ThalesStakingRewardsPoolChangedEventFilter = TypedEventFilter<ThalesStakingRewardsPoolChangedEvent>;
export interface VestedEventObject {
    account: string;
    amount: BigNumber;
}
export declare type VestedEvent = TypedEvent<[string, BigNumber], VestedEventObject>;
export declare type VestedEventFilter = TypedEventFilter<VestedEvent>;
export interface EscrowThales extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: EscrowThalesInterface;
    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: {
        NUM_PERIODS(overrides?: CallOverrides): Promise<[BigNumber]>;
        ThalesStakingRewardsPool(overrides?: CallOverrides): Promise<[string]>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addToEscrow(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        airdropContract(overrides?: CallOverrides): Promise<[string]>;
        claimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        currentVestingPeriod(overrides?: CallOverrides): Promise<[BigNumber]>;
        enableTestMode(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        fixEscrowEntry(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getStakedEscrowedBalanceForRewards(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getStakerAmounts(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getStakerPeriod(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        iStakingThales(overrides?: CallOverrides): Promise<[string]>;
        initNonReentrant(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(_owner: PromiseOrValue<string>, _vestingToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lastPauseTime(overrides?: CallOverrides): Promise<[BigNumber]>;
        lastPeriodAddedReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        nominatedOwner(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        setAirdropContract(AirdropContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPaused(_paused: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setStakingThalesContract(StakingThalesContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setThalesStakingRewardsPool(_thalesStakingRewardsPool: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        subtractTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        totalAccountEscrowedAmount(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalEscrowBalanceNotIncludedInStaking(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalEscrowedRewards(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnershipAtInit(proxyAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateCurrentPeriod(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vest(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vestingEntries(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount: BigNumber;
            vesting_period: BigNumber;
        }>;
        vestingToken(overrides?: CallOverrides): Promise<[string]>;
    };
    NUM_PERIODS(overrides?: CallOverrides): Promise<BigNumber>;
    ThalesStakingRewardsPool(overrides?: CallOverrides): Promise<string>;
    acceptOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addToEscrow(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    airdropContract(overrides?: CallOverrides): Promise<string>;
    claimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    currentVestingPeriod(overrides?: CallOverrides): Promise<BigNumber>;
    enableTestMode(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    fixEscrowEntry(account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getStakedEscrowedBalanceForRewards(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getStakerAmounts(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getStakerPeriod(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    iStakingThales(overrides?: CallOverrides): Promise<string>;
    initNonReentrant(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(_owner: PromiseOrValue<string>, _vestingToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lastPauseTime(overrides?: CallOverrides): Promise<BigNumber>;
    lastPeriodAddedReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    nominatedOwner(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    setAirdropContract(AirdropContract: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPaused(_paused: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setStakingThalesContract(StakingThalesContract: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setThalesStakingRewardsPool(_thalesStakingRewardsPool: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    subtractTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    totalAccountEscrowedAmount(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalEscrowBalanceNotIncludedInStaking(overrides?: CallOverrides): Promise<BigNumber>;
    totalEscrowedRewards(overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnershipAtInit(proxyAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateCurrentPeriod(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vest(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vestingEntries(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        amount: BigNumber;
        vesting_period: BigNumber;
    }>;
    vestingToken(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        NUM_PERIODS(overrides?: CallOverrides): Promise<BigNumber>;
        ThalesStakingRewardsPool(overrides?: CallOverrides): Promise<string>;
        acceptOwnership(overrides?: CallOverrides): Promise<void>;
        addToEscrow(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        addTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        airdropContract(overrides?: CallOverrides): Promise<string>;
        claimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        currentVestingPeriod(overrides?: CallOverrides): Promise<BigNumber>;
        enableTestMode(overrides?: CallOverrides): Promise<void>;
        fixEscrowEntry(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getStakedEscrowedBalanceForRewards(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getStakerAmounts(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getStakerPeriod(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        iStakingThales(overrides?: CallOverrides): Promise<string>;
        initNonReentrant(overrides?: CallOverrides): Promise<void>;
        initialize(_owner: PromiseOrValue<string>, _vestingToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        lastPauseTime(overrides?: CallOverrides): Promise<BigNumber>;
        lastPeriodAddedReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        nominatedOwner(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        setAirdropContract(AirdropContract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setOwner(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setPaused(_paused: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setStakingThalesContract(StakingThalesContract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setThalesStakingRewardsPool(_thalesStakingRewardsPool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        subtractTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        totalAccountEscrowedAmount(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEscrowBalanceNotIncludedInStaking(overrides?: CallOverrides): Promise<BigNumber>;
        totalEscrowedRewards(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnershipAtInit(proxyAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updateCurrentPeriod(overrides?: CallOverrides): Promise<boolean>;
        vest(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        vestingEntries(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount: BigNumber;
            vesting_period: BigNumber;
        }>;
        vestingToken(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        'AddedToEscrow(address,uint256)'(acount?: null, amount?: null): AddedToEscrowEventFilter;
        AddedToEscrow(acount?: null, amount?: null): AddedToEscrowEventFilter;
        'AirdropContractChanged(address)'(newAddress?: null): AirdropContractChangedEventFilter;
        AirdropContractChanged(newAddress?: null): AirdropContractChangedEventFilter;
        'OwnerChanged(address,address)'(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter;
        OwnerChanged(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter;
        'OwnerNominated(address)'(newOwner?: null): OwnerNominatedEventFilter;
        OwnerNominated(newOwner?: null): OwnerNominatedEventFilter;
        'PauseChanged(bool)'(isPaused?: null): PauseChangedEventFilter;
        PauseChanged(isPaused?: null): PauseChangedEventFilter;
        'StakingThalesContractChanged(address)'(newAddress?: null): StakingThalesContractChangedEventFilter;
        StakingThalesContractChanged(newAddress?: null): StakingThalesContractChangedEventFilter;
        'ThalesStakingRewardsPoolChanged(address)'(thalesStakingRewardsPool?: null): ThalesStakingRewardsPoolChangedEventFilter;
        ThalesStakingRewardsPoolChanged(thalesStakingRewardsPool?: null): ThalesStakingRewardsPoolChangedEventFilter;
        'Vested(address,uint256)'(account?: null, amount?: null): VestedEventFilter;
        Vested(account?: null, amount?: null): VestedEventFilter;
    };
    estimateGas: {
        NUM_PERIODS(overrides?: CallOverrides): Promise<BigNumber>;
        ThalesStakingRewardsPool(overrides?: CallOverrides): Promise<BigNumber>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addToEscrow(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        airdropContract(overrides?: CallOverrides): Promise<BigNumber>;
        claimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        currentVestingPeriod(overrides?: CallOverrides): Promise<BigNumber>;
        enableTestMode(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        fixEscrowEntry(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getStakedEscrowedBalanceForRewards(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getStakerAmounts(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getStakerPeriod(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        iStakingThales(overrides?: CallOverrides): Promise<BigNumber>;
        initNonReentrant(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(_owner: PromiseOrValue<string>, _vestingToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lastPauseTime(overrides?: CallOverrides): Promise<BigNumber>;
        lastPeriodAddedReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        nominatedOwner(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        setAirdropContract(AirdropContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPaused(_paused: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setStakingThalesContract(StakingThalesContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setThalesStakingRewardsPool(_thalesStakingRewardsPool: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        subtractTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        totalAccountEscrowedAmount(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEscrowBalanceNotIncludedInStaking(overrides?: CallOverrides): Promise<BigNumber>;
        totalEscrowedRewards(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnershipAtInit(proxyAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateCurrentPeriod(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vest(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vestingEntries(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        vestingToken(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        NUM_PERIODS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ThalesStakingRewardsPool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addToEscrow(account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        airdropContract(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentVestingPeriod(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        enableTestMode(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        fixEscrowEntry(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getStakedEscrowedBalanceForRewards(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStakerAmounts(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStakerPeriod(account: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        iStakingThales(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initNonReentrant(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_owner: PromiseOrValue<string>, _vestingToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lastPauseTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastPeriodAddedReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        nominatedOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setAirdropContract(AirdropContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPaused(_paused: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setStakingThalesContract(StakingThalesContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setThalesStakingRewardsPool(_thalesStakingRewardsPool: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        subtractTotalEscrowBalanceNotIncludedInStaking(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        totalAccountEscrowedAmount(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalEscrowBalanceNotIncludedInStaking(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalEscrowedRewards(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnershipAtInit(proxyAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateCurrentPeriod(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vest(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vestingEntries(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        vestingToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
