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 TokemakAccTokeInterface extends utils.Interface {
    functions: {
        'DEFAULT_ADMIN_ROLE()': FunctionFragment;
        'LOCK_FOR_ROLE()': FunctionFragment;
        '_eventSend()': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'cancelWithdrawalRequest()': FunctionFragment;
        'decimals()': FunctionFragment;
        'destinations()': FunctionFragment;
        'getCurrentCycleID()': FunctionFragment;
        'getDepositInfo(address)': FunctionFragment;
        'getRoleAdmin(bytes32)': FunctionFragment;
        'getWithdrawalInfo(address)': FunctionFragment;
        'grantRole(bytes32,address)': FunctionFragment;
        'hasRole(bytes32,address)': FunctionFragment;
        'initialize(address,uint256,uint256,address,uint256)': FunctionFragment;
        'lockToke(uint256,uint256)': FunctionFragment;
        'lockTokeFor(uint256,uint256,address)': FunctionFragment;
        'manager()': FunctionFragment;
        'maxCap()': FunctionFragment;
        'maxLockCycles()': FunctionFragment;
        'minLockCycles()': FunctionFragment;
        'name()': FunctionFragment;
        'paused()': FunctionFragment;
        'renounceRole(bytes32,address)': FunctionFragment;
        'requestWithdrawal(uint256)': FunctionFragment;
        'requestedWithdrawals(address)': FunctionFragment;
        'revokeRole(bytes32,address)': FunctionFragment;
        'setDestinations(address,address)': FunctionFragment;
        'setEventSend(bool)': FunctionFragment;
        'setMaxCap(uint256)': FunctionFragment;
        'setMaxLockCycles(uint256)': FunctionFragment;
        'setMinLockCycles(uint256)': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'symbol()': FunctionFragment;
        'toke()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'withdraw(uint256)': FunctionFragment;
        'withheldLiquidity()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DEFAULT_ADMIN_ROLE' | 'LOCK_FOR_ROLE' | '_eventSend' | 'balanceOf' | 'cancelWithdrawalRequest' | 'decimals' | 'destinations' | 'getCurrentCycleID' | 'getDepositInfo' | 'getRoleAdmin' | 'getWithdrawalInfo' | 'grantRole' | 'hasRole' | 'initialize' | 'lockToke' | 'lockTokeFor' | 'manager' | 'maxCap' | 'maxLockCycles' | 'minLockCycles' | 'name' | 'paused' | 'renounceRole' | 'requestWithdrawal' | 'requestedWithdrawals' | 'revokeRole' | 'setDestinations' | 'setEventSend' | 'setMaxCap' | 'setMaxLockCycles' | 'setMinLockCycles' | 'supportsInterface' | 'symbol' | 'toke' | 'totalSupply' | 'withdraw' | 'withheldLiquidity'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'LOCK_FOR_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: '_eventSend', values?: undefined): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'cancelWithdrawalRequest', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'destinations', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getCurrentCycleID', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getDepositInfo', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getWithdrawalInfo', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'lockToke', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'lockTokeFor', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'manager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'maxCap', values?: undefined): string;
    encodeFunctionData(functionFragment: 'maxLockCycles', values?: undefined): string;
    encodeFunctionData(functionFragment: 'minLockCycles', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'requestWithdrawal', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'requestedWithdrawals', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setDestinations', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setEventSend', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setMaxCap', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setMaxLockCycles', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setMinLockCycles', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'toke', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withheldLiquidity', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'LOCK_FOR_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_eventSend', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelWithdrawalRequest', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'destinations', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentCycleID', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDepositInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getWithdrawalInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lockToke', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lockTokeFor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'manager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxLockCycles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'minLockCycles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'requestWithdrawal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'requestedWithdrawals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDestinations', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setEventSend', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMaxCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMaxLockCycles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMinLockCycles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'toke', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withheldLiquidity', data: BytesLike): Result;
    events: {
        'DestinationsSet(address,address)': EventFragment;
        'EventSendSet(bool)': EventFragment;
        'Initialized(uint8)': EventFragment;
        'MaxCapSetEvent(uint256)': EventFragment;
        'MaxLockCyclesSetEvent(uint256)': EventFragment;
        'MinLockCyclesSetEvent(uint256)': EventFragment;
        'Paused(address)': EventFragment;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': EventFragment;
        'RoleGranted(bytes32,address,address)': EventFragment;
        'RoleRevoked(bytes32,address,address)': EventFragment;
        'TokeLockedEvent(address,address,uint256,uint256,uint256)': EventFragment;
        'Unpaused(address)': EventFragment;
        'WithdrawalEvent(address,uint256)': EventFragment;
        'WithdrawalRequestCancelledEvent(address)': EventFragment;
        'WithdrawalRequestedEvent(address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'DestinationsSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EventSendSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Initialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MaxCapSetEvent'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MaxLockCyclesSetEvent'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MinLockCyclesSetEvent'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleAdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TokeLockedEvent'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalEvent'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalRequestCancelledEvent'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalRequestedEvent'): EventFragment;
}
export interface DestinationsSetEventObject {
    fxStateSender: string;
    destinationOnL2: string;
}
export declare type DestinationsSetEvent = TypedEvent<[string, string], DestinationsSetEventObject>;
export declare type DestinationsSetEventFilter = TypedEventFilter<DestinationsSetEvent>;
export interface EventSendSetEventObject {
    eventSendSet: boolean;
}
export declare type EventSendSetEvent = TypedEvent<[boolean], EventSendSetEventObject>;
export declare type EventSendSetEventFilter = TypedEventFilter<EventSendSetEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface MaxCapSetEventEventObject {
    maxCap: BigNumber;
}
export declare type MaxCapSetEventEvent = TypedEvent<[BigNumber], MaxCapSetEventEventObject>;
export declare type MaxCapSetEventEventFilter = TypedEventFilter<MaxCapSetEventEvent>;
export interface MaxLockCyclesSetEventEventObject {
    maxLockCycles: BigNumber;
}
export declare type MaxLockCyclesSetEventEvent = TypedEvent<[BigNumber], MaxLockCyclesSetEventEventObject>;
export declare type MaxLockCyclesSetEventEventFilter = TypedEventFilter<MaxLockCyclesSetEventEvent>;
export interface MinLockCyclesSetEventEventObject {
    minLockCycles: BigNumber;
}
export declare type MinLockCyclesSetEventEvent = TypedEvent<[BigNumber], MinLockCyclesSetEventEventObject>;
export declare type MinLockCyclesSetEventEventFilter = TypedEventFilter<MinLockCyclesSetEventEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export declare type RoleAdminChangedEvent = TypedEvent<[string, string, string], RoleAdminChangedEventObject>;
export declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[string, string, string], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[string, string, string], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface TokeLockedEventEventObject {
    tokeSource: string;
    account: string;
    numCycles: BigNumber;
    currentCycle: BigNumber;
    amount: BigNumber;
}
export declare type TokeLockedEventEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber
], TokeLockedEventEventObject>;
export declare type TokeLockedEventEventFilter = TypedEventFilter<TokeLockedEventEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface WithdrawalEventEventObject {
    account: string;
    amount: BigNumber;
}
export declare type WithdrawalEventEvent = TypedEvent<[string, BigNumber], WithdrawalEventEventObject>;
export declare type WithdrawalEventEventFilter = TypedEventFilter<WithdrawalEventEvent>;
export interface WithdrawalRequestCancelledEventEventObject {
    account: string;
}
export declare type WithdrawalRequestCancelledEventEvent = TypedEvent<[string], WithdrawalRequestCancelledEventEventObject>;
export declare type WithdrawalRequestCancelledEventEventFilter = TypedEventFilter<WithdrawalRequestCancelledEventEvent>;
export interface WithdrawalRequestedEventEventObject {
    account: string;
    amount: BigNumber;
}
export declare type WithdrawalRequestedEventEvent = TypedEvent<[string, BigNumber], WithdrawalRequestedEventEventObject>;
export declare type WithdrawalRequestedEventEventFilter = TypedEventFilter<WithdrawalRequestedEventEvent>;
export interface TokemakAccToke extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: TokemakAccTokeInterface;
    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: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        LOCK_FOR_ROLE(overrides?: CallOverrides): Promise<[string]>;
        _eventSend(overrides?: CallOverrides): Promise<[boolean]>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            balance: BigNumber;
        }>;
        cancelWithdrawalRequest(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        destinations(overrides?: CallOverrides): Promise<[string, string] & {
            fxStateSender: string;
            destinationOnL2: string;
        }>;
        getCurrentCycleID(overrides?: CallOverrides): Promise<[BigNumber]>;
        getDepositInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            lockCycle: BigNumber;
            lockDuration: BigNumber;
            amount: BigNumber;
        }>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getWithdrawalInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            minCycle: BigNumber;
            amount: BigNumber;
        }>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        initialize(_manager: PromiseOrValue<string>, _minLockCycles: PromiseOrValue<BigNumberish>, _maxLockCycles: PromiseOrValue<BigNumberish>, _toke: PromiseOrValue<string>, _maxCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lockToke(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lockTokeFor(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        manager(overrides?: CallOverrides): Promise<[string]>;
        maxCap(overrides?: CallOverrides): Promise<[BigNumber]>;
        maxLockCycles(overrides?: CallOverrides): Promise<[BigNumber]>;
        minLockCycles(overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        requestWithdrawal(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        requestedWithdrawals(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            minCycle: BigNumber;
            amount: BigNumber;
        }>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDestinations(_fxStateSender: PromiseOrValue<string>, _destinationOnL2: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setEventSend(_eventSendSet: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxCap(_maxCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxLockCycles(_maxLockCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMinLockCycles(_minLockCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        toke(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withheldLiquidity(overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    LOCK_FOR_ROLE(overrides?: CallOverrides): Promise<string>;
    _eventSend(overrides?: CallOverrides): Promise<boolean>;
    balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    cancelWithdrawalRequest(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    decimals(overrides?: CallOverrides): Promise<number>;
    destinations(overrides?: CallOverrides): Promise<[string, string] & {
        fxStateSender: string;
        destinationOnL2: string;
    }>;
    getCurrentCycleID(overrides?: CallOverrides): Promise<BigNumber>;
    getDepositInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        lockCycle: BigNumber;
        lockDuration: BigNumber;
        amount: BigNumber;
    }>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getWithdrawalInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        minCycle: BigNumber;
        amount: BigNumber;
    }>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    initialize(_manager: PromiseOrValue<string>, _minLockCycles: PromiseOrValue<BigNumberish>, _maxLockCycles: PromiseOrValue<BigNumberish>, _toke: PromiseOrValue<string>, _maxCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lockToke(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lockTokeFor(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    manager(overrides?: CallOverrides): Promise<string>;
    maxCap(overrides?: CallOverrides): Promise<BigNumber>;
    maxLockCycles(overrides?: CallOverrides): Promise<BigNumber>;
    minLockCycles(overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    requestWithdrawal(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    requestedWithdrawals(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        minCycle: BigNumber;
        amount: BigNumber;
    }>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDestinations(_fxStateSender: PromiseOrValue<string>, _destinationOnL2: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setEventSend(_eventSendSet: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxCap(_maxCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxLockCycles(_maxLockCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMinLockCycles(_minLockCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    symbol(overrides?: CallOverrides): Promise<string>;
    toke(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withheldLiquidity(overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        LOCK_FOR_ROLE(overrides?: CallOverrides): Promise<string>;
        _eventSend(overrides?: CallOverrides): Promise<boolean>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        cancelWithdrawalRequest(overrides?: CallOverrides): Promise<void>;
        decimals(overrides?: CallOverrides): Promise<number>;
        destinations(overrides?: CallOverrides): Promise<[string, string] & {
            fxStateSender: string;
            destinationOnL2: string;
        }>;
        getCurrentCycleID(overrides?: CallOverrides): Promise<BigNumber>;
        getDepositInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            lockCycle: BigNumber;
            lockDuration: BigNumber;
            amount: BigNumber;
        }>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getWithdrawalInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            minCycle: BigNumber;
            amount: BigNumber;
        }>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        initialize(_manager: PromiseOrValue<string>, _minLockCycles: PromiseOrValue<BigNumberish>, _maxLockCycles: PromiseOrValue<BigNumberish>, _toke: PromiseOrValue<string>, _maxCap: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        lockToke(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        lockTokeFor(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        manager(overrides?: CallOverrides): Promise<string>;
        maxCap(overrides?: CallOverrides): Promise<BigNumber>;
        maxLockCycles(overrides?: CallOverrides): Promise<BigNumber>;
        minLockCycles(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        requestWithdrawal(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        requestedWithdrawals(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            minCycle: BigNumber;
            amount: BigNumber;
        }>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setDestinations(_fxStateSender: PromiseOrValue<string>, _destinationOnL2: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setEventSend(_eventSendSet: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setMaxCap(_maxCap: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMaxLockCycles(_maxLockCycles: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMinLockCycles(_minLockCycles: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        symbol(overrides?: CallOverrides): Promise<string>;
        toke(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        withheldLiquidity(overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'DestinationsSet(address,address)'(fxStateSender?: null, destinationOnL2?: null): DestinationsSetEventFilter;
        DestinationsSet(fxStateSender?: null, destinationOnL2?: null): DestinationsSetEventFilter;
        'EventSendSet(bool)'(eventSendSet?: null): EventSendSetEventFilter;
        EventSendSet(eventSendSet?: null): EventSendSetEventFilter;
        'Initialized(uint8)'(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        'MaxCapSetEvent(uint256)'(maxCap?: null): MaxCapSetEventEventFilter;
        MaxCapSetEvent(maxCap?: null): MaxCapSetEventEventFilter;
        'MaxLockCyclesSetEvent(uint256)'(maxLockCycles?: null): MaxLockCyclesSetEventEventFilter;
        MaxLockCyclesSetEvent(maxLockCycles?: null): MaxLockCyclesSetEventEventFilter;
        'MinLockCyclesSetEvent(uint256)'(minLockCycles?: null): MinLockCyclesSetEventEventFilter;
        MinLockCyclesSetEvent(minLockCycles?: null): MinLockCyclesSetEventEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'RoleAdminChanged(bytes32,bytes32,bytes32)'(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        'RoleGranted(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        'RoleRevoked(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        'TokeLockedEvent(address,address,uint256,uint256,uint256)'(tokeSource?: PromiseOrValue<string> | null, account?: PromiseOrValue<string> | null, numCycles?: null, currentCycle?: PromiseOrValue<BigNumberish> | null, amount?: null): TokeLockedEventEventFilter;
        TokeLockedEvent(tokeSource?: PromiseOrValue<string> | null, account?: PromiseOrValue<string> | null, numCycles?: null, currentCycle?: PromiseOrValue<BigNumberish> | null, amount?: null): TokeLockedEventEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
        'WithdrawalEvent(address,uint256)'(account?: PromiseOrValue<string> | null, amount?: null): WithdrawalEventEventFilter;
        WithdrawalEvent(account?: PromiseOrValue<string> | null, amount?: null): WithdrawalEventEventFilter;
        'WithdrawalRequestCancelledEvent(address)'(account?: PromiseOrValue<string> | null): WithdrawalRequestCancelledEventEventFilter;
        WithdrawalRequestCancelledEvent(account?: PromiseOrValue<string> | null): WithdrawalRequestCancelledEventEventFilter;
        'WithdrawalRequestedEvent(address,uint256)'(account?: PromiseOrValue<string> | null, amount?: null): WithdrawalRequestedEventEventFilter;
        WithdrawalRequestedEvent(account?: PromiseOrValue<string> | null, amount?: null): WithdrawalRequestedEventEventFilter;
    };
    estimateGas: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        LOCK_FOR_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        _eventSend(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        cancelWithdrawalRequest(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        destinations(overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentCycleID(overrides?: CallOverrides): Promise<BigNumber>;
        getDepositInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getWithdrawalInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_manager: PromiseOrValue<string>, _minLockCycles: PromiseOrValue<BigNumberish>, _maxLockCycles: PromiseOrValue<BigNumberish>, _toke: PromiseOrValue<string>, _maxCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lockToke(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lockTokeFor(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        manager(overrides?: CallOverrides): Promise<BigNumber>;
        maxCap(overrides?: CallOverrides): Promise<BigNumber>;
        maxLockCycles(overrides?: CallOverrides): Promise<BigNumber>;
        minLockCycles(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        requestWithdrawal(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        requestedWithdrawals(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDestinations(_fxStateSender: PromiseOrValue<string>, _destinationOnL2: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setEventSend(_eventSendSet: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxCap(_maxCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxLockCycles(_maxLockCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMinLockCycles(_minLockCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        toke(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withheldLiquidity(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        LOCK_FOR_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _eventSend(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cancelWithdrawalRequest(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        destinations(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentCycleID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDepositInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWithdrawalInfo(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(_manager: PromiseOrValue<string>, _minLockCycles: PromiseOrValue<BigNumberish>, _maxLockCycles: PromiseOrValue<BigNumberish>, _toke: PromiseOrValue<string>, _maxCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lockToke(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lockTokeFor(tokeAmount: PromiseOrValue<BigNumberish>, numOfCycles: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        manager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxCap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxLockCycles(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        minLockCycles(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        requestWithdrawal(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        requestedWithdrawals(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDestinations(_fxStateSender: PromiseOrValue<string>, _destinationOnL2: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setEventSend(_eventSendSet: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxCap(_maxCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxLockCycles(_maxLockCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMinLockCycles(_minLockCycles: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        toke(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withheldLiquidity(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
