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 } from "./common";
export declare namespace SpokePoolInterface {
    type RelayerRefundLeafStruct = {
        amountToReturn: BigNumberish;
        chainId: BigNumberish;
        refundAmounts: BigNumberish[];
        leafId: BigNumberish;
        l2TokenAddress: string;
        refundAddresses: string[];
    };
    type RelayerRefundLeafStructOutput = [
        BigNumber,
        BigNumber,
        BigNumber[],
        number,
        string,
        string[]
    ] & {
        amountToReturn: BigNumber;
        chainId: BigNumber;
        refundAmounts: BigNumber[];
        leafId: number;
        l2TokenAddress: string;
        refundAddresses: string[];
    };
}
export declare namespace V3SpokePoolInterface {
    type V3RelayDataStruct = {
        depositor: BytesLike;
        recipient: BytesLike;
        exclusiveRelayer: BytesLike;
        inputToken: BytesLike;
        outputToken: BytesLike;
        inputAmount: BigNumberish;
        outputAmount: BigNumberish;
        originChainId: BigNumberish;
        depositId: BigNumberish;
        fillDeadline: BigNumberish;
        exclusivityDeadline: BigNumberish;
        message: BytesLike;
    };
    type V3RelayDataStructOutput = [
        string,
        string,
        string,
        string,
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        number,
        number,
        string
    ] & {
        depositor: string;
        recipient: string;
        exclusiveRelayer: string;
        inputToken: string;
        outputToken: string;
        inputAmount: BigNumber;
        outputAmount: BigNumber;
        originChainId: BigNumber;
        depositId: BigNumber;
        fillDeadline: number;
        exclusivityDeadline: number;
        message: string;
    };
    type V3SlowFillStruct = {
        relayData: V3SpokePoolInterface.V3RelayDataStruct;
        chainId: BigNumberish;
        updatedOutputAmount: BigNumberish;
    };
    type V3SlowFillStructOutput = [
        V3SpokePoolInterface.V3RelayDataStructOutput,
        BigNumber,
        BigNumber
    ] & {
        relayData: V3SpokePoolInterface.V3RelayDataStructOutput;
        chainId: BigNumber;
        updatedOutputAmount: BigNumber;
    };
    type V3RelayDataLegacyStruct = {
        depositor: string;
        recipient: string;
        exclusiveRelayer: string;
        inputToken: string;
        outputToken: string;
        inputAmount: BigNumberish;
        outputAmount: BigNumberish;
        originChainId: BigNumberish;
        depositId: BigNumberish;
        fillDeadline: BigNumberish;
        exclusivityDeadline: BigNumberish;
        message: BytesLike;
    };
    type V3RelayDataLegacyStructOutput = [
        string,
        string,
        string,
        string,
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        number,
        number,
        number,
        string
    ] & {
        depositor: string;
        recipient: string;
        exclusiveRelayer: string;
        inputToken: string;
        outputToken: string;
        inputAmount: BigNumber;
        outputAmount: BigNumber;
        originChainId: BigNumber;
        depositId: number;
        fillDeadline: number;
        exclusivityDeadline: number;
        message: string;
    };
    type V3RelayExecutionEventInfoStruct = {
        updatedRecipient: BytesLike;
        updatedMessageHash: BytesLike;
        updatedOutputAmount: BigNumberish;
        fillType: BigNumberish;
    };
    type V3RelayExecutionEventInfoStructOutput = [
        string,
        string,
        BigNumber,
        number
    ] & {
        updatedRecipient: string;
        updatedMessageHash: string;
        updatedOutputAmount: BigNumber;
        fillType: number;
    };
    type LegacyV3RelayExecutionEventInfoStruct = {
        updatedRecipient: string;
        updatedMessage: BytesLike;
        updatedOutputAmount: BigNumberish;
        fillType: BigNumberish;
    };
    type LegacyV3RelayExecutionEventInfoStructOutput = [
        string,
        string,
        BigNumber,
        number
    ] & {
        updatedRecipient: string;
        updatedMessage: string;
        updatedOutputAmount: BigNumber;
        fillType: number;
    };
}
export declare namespace MultiCallerUpgradeable {
    type ResultStruct = {
        success: boolean;
        returnData: BytesLike;
    };
    type ResultStructOutput = [boolean, string] & {
        success: boolean;
        returnData: string;
    };
}
export interface Ethereum_SpokePoolInterface extends utils.Interface {
    functions: {
        "EMPTY_MSG_BYTES()": FunctionFragment;
        "EMPTY_RELAYER()": FunctionFragment;
        "EMPTY_REPAYMENT_CHAIN_ID()": FunctionFragment;
        "INFINITE_FILL_DEADLINE()": FunctionFragment;
        "MAX_EXCLUSIVITY_PERIOD_SECONDS()": FunctionFragment;
        "MAX_TRANSFER_SIZE()": FunctionFragment;
        "OFT_DST_EID()": FunctionFragment;
        "OFT_FEE_CAP()": FunctionFragment;
        "UPDATE_BYTES32_DEPOSIT_DETAILS_HASH()": FunctionFragment;
        "__SpokePool_init(uint32,address,address)": FunctionFragment;
        "chainId()": FunctionFragment;
        "claimRelayerRefund(bytes32,bytes32)": FunctionFragment;
        "crossDomainAdmin()": FunctionFragment;
        "deposit(bytes32,bytes32,bytes32,bytes32,uint256,uint256,uint256,bytes32,uint32,uint32,uint32,bytes)": FunctionFragment;
        "depositDeprecated_5947912356(address,address,uint256,uint256,int64,uint32,bytes,uint256)": FunctionFragment;
        "depositFor(address,address,address,uint256,uint256,int64,uint32,bytes,uint256)": FunctionFragment;
        "depositNow(bytes32,bytes32,bytes32,bytes32,uint256,uint256,uint256,bytes32,uint32,uint32,bytes)": FunctionFragment;
        "depositQuoteTimeBuffer()": FunctionFragment;
        "depositV3(address,address,address,address,uint256,uint256,uint256,address,uint32,uint32,uint32,bytes)": FunctionFragment;
        "depositV3Now(address,address,address,address,uint256,uint256,uint256,address,uint32,uint32,bytes)": FunctionFragment;
        "emergencyDeleteRootBundle(uint256)": FunctionFragment;
        "executeExternalCall(bytes)": FunctionFragment;
        "executeRelayerRefundLeaf(uint32,(uint256,uint256,uint256[],uint32,address,address[]),bytes32[])": FunctionFragment;
        "executeSlowRelayLeaf(((bytes32,bytes32,bytes32,bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,bytes),uint256,uint256),uint32,bytes32[])": FunctionFragment;
        "fill(bytes32,bytes,bytes)": FunctionFragment;
        "fillDeadlineBuffer()": FunctionFragment;
        "fillRelay((bytes32,bytes32,bytes32,bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,bytes),uint256,bytes32)": FunctionFragment;
        "fillRelayWithUpdatedDeposit((bytes32,bytes32,bytes32,bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,bytes),uint256,bytes32,uint256,bytes32,bytes,bytes)": FunctionFragment;
        "fillStatuses(bytes32)": FunctionFragment;
        "fillV3Relay((address,address,address,address,address,uint256,uint256,uint256,uint32,uint32,uint32,bytes),uint256)": FunctionFragment;
        "getCurrentTime()": FunctionFragment;
        "getRelayerRefund(address,address)": FunctionFragment;
        "getUnsafeDepositId(address,bytes32,uint256)": FunctionFragment;
        "getV3RelayHash((bytes32,bytes32,bytes32,bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,bytes))": FunctionFragment;
        "initialize(uint32,address)": FunctionFragment;
        "multicall(bytes[])": FunctionFragment;
        "numberOfDeposits()": FunctionFragment;
        "oftMessengers(address)": FunctionFragment;
        "owner()": FunctionFragment;
        "pauseDeposits(bool)": FunctionFragment;
        "pauseFills(bool)": FunctionFragment;
        "pausedDeposits()": FunctionFragment;
        "pausedFills()": FunctionFragment;
        "proxiableUUID()": FunctionFragment;
        "relayRootBundle(bytes32,bytes32)": FunctionFragment;
        "relayerRefund(address,address)": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "requestSlowFill((bytes32,bytes32,bytes32,bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,bytes))": FunctionFragment;
        "rootBundles(uint256)": FunctionFragment;
        "setCrossDomainAdmin(address)": FunctionFragment;
        "setOftMessenger(address,address)": FunctionFragment;
        "setWithdrawalRecipient(address)": FunctionFragment;
        "speedUpDeposit(bytes32,uint256,uint256,bytes32,bytes,bytes)": FunctionFragment;
        "speedUpV3Deposit(address,uint256,uint256,address,bytes,bytes)": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "tryMulticall(bytes[])": FunctionFragment;
        "unsafeDeposit(bytes32,bytes32,bytes32,bytes32,uint256,uint256,uint256,bytes32,uint256,uint32,uint32,uint32,bytes)": FunctionFragment;
        "upgradeTo(address)": FunctionFragment;
        "upgradeToAndCall(address,bytes)": FunctionFragment;
        "withdrawalRecipient()": FunctionFragment;
        "wrappedNativeToken()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "EMPTY_MSG_BYTES" | "EMPTY_RELAYER" | "EMPTY_REPAYMENT_CHAIN_ID" | "INFINITE_FILL_DEADLINE" | "MAX_EXCLUSIVITY_PERIOD_SECONDS" | "MAX_TRANSFER_SIZE" | "OFT_DST_EID" | "OFT_FEE_CAP" | "UPDATE_BYTES32_DEPOSIT_DETAILS_HASH" | "__SpokePool_init" | "chainId" | "claimRelayerRefund" | "crossDomainAdmin" | "deposit" | "depositDeprecated_5947912356" | "depositFor" | "depositNow" | "depositQuoteTimeBuffer" | "depositV3" | "depositV3Now" | "emergencyDeleteRootBundle" | "executeExternalCall" | "executeRelayerRefundLeaf" | "executeSlowRelayLeaf" | "fill" | "fillDeadlineBuffer" | "fillRelay" | "fillRelayWithUpdatedDeposit" | "fillStatuses" | "fillV3Relay" | "getCurrentTime" | "getRelayerRefund" | "getUnsafeDepositId" | "getV3RelayHash" | "initialize" | "multicall" | "numberOfDeposits" | "oftMessengers" | "owner" | "pauseDeposits" | "pauseFills" | "pausedDeposits" | "pausedFills" | "proxiableUUID" | "relayRootBundle" | "relayerRefund" | "renounceOwnership" | "requestSlowFill" | "rootBundles" | "setCrossDomainAdmin" | "setOftMessenger" | "setWithdrawalRecipient" | "speedUpDeposit" | "speedUpV3Deposit" | "transferOwnership" | "tryMulticall" | "unsafeDeposit" | "upgradeTo" | "upgradeToAndCall" | "withdrawalRecipient" | "wrappedNativeToken"): FunctionFragment;
    encodeFunctionData(functionFragment: "EMPTY_MSG_BYTES", values?: undefined): string;
    encodeFunctionData(functionFragment: "EMPTY_RELAYER", values?: undefined): string;
    encodeFunctionData(functionFragment: "EMPTY_REPAYMENT_CHAIN_ID", values?: undefined): string;
    encodeFunctionData(functionFragment: "INFINITE_FILL_DEADLINE", values?: undefined): string;
    encodeFunctionData(functionFragment: "MAX_EXCLUSIVITY_PERIOD_SECONDS", values?: undefined): string;
    encodeFunctionData(functionFragment: "MAX_TRANSFER_SIZE", values?: undefined): string;
    encodeFunctionData(functionFragment: "OFT_DST_EID", values?: undefined): string;
    encodeFunctionData(functionFragment: "OFT_FEE_CAP", values?: undefined): string;
    encodeFunctionData(functionFragment: "UPDATE_BYTES32_DEPOSIT_DETAILS_HASH", values?: undefined): string;
    encodeFunctionData(functionFragment: "__SpokePool_init", values: [BigNumberish, string, string]): string;
    encodeFunctionData(functionFragment: "chainId", values?: undefined): string;
    encodeFunctionData(functionFragment: "claimRelayerRefund", values: [BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "crossDomainAdmin", values?: undefined): string;
    encodeFunctionData(functionFragment: "deposit", values: [
        BytesLike,
        BytesLike,
        BytesLike,
        BytesLike,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BytesLike,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BytesLike
    ]): string;
    encodeFunctionData(functionFragment: "depositDeprecated_5947912356", values: [
        string,
        string,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BytesLike,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "depositFor", values: [
        string,
        string,
        string,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BytesLike,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "depositNow", values: [
        BytesLike,
        BytesLike,
        BytesLike,
        BytesLike,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BytesLike,
        BigNumberish,
        BigNumberish,
        BytesLike
    ]): string;
    encodeFunctionData(functionFragment: "depositQuoteTimeBuffer", values?: undefined): string;
    encodeFunctionData(functionFragment: "depositV3", values: [
        string,
        string,
        string,
        string,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        string,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BytesLike
    ]): string;
    encodeFunctionData(functionFragment: "depositV3Now", values: [
        string,
        string,
        string,
        string,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        string,
        BigNumberish,
        BigNumberish,
        BytesLike
    ]): string;
    encodeFunctionData(functionFragment: "emergencyDeleteRootBundle", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "executeExternalCall", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "executeRelayerRefundLeaf", values: [
        BigNumberish,
        SpokePoolInterface.RelayerRefundLeafStruct,
        BytesLike[]
    ]): string;
    encodeFunctionData(functionFragment: "executeSlowRelayLeaf", values: [V3SpokePoolInterface.V3SlowFillStruct, BigNumberish, BytesLike[]]): string;
    encodeFunctionData(functionFragment: "fill", values: [BytesLike, BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "fillDeadlineBuffer", values?: undefined): string;
    encodeFunctionData(functionFragment: "fillRelay", values: [V3SpokePoolInterface.V3RelayDataStruct, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "fillRelayWithUpdatedDeposit", values: [
        V3SpokePoolInterface.V3RelayDataStruct,
        BigNumberish,
        BytesLike,
        BigNumberish,
        BytesLike,
        BytesLike,
        BytesLike
    ]): string;
    encodeFunctionData(functionFragment: "fillStatuses", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "fillV3Relay", values: [V3SpokePoolInterface.V3RelayDataLegacyStruct, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getCurrentTime", values?: undefined): string;
    encodeFunctionData(functionFragment: "getRelayerRefund", values: [string, string]): string;
    encodeFunctionData(functionFragment: "getUnsafeDepositId", values: [string, BytesLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getV3RelayHash", values: [V3SpokePoolInterface.V3RelayDataStruct]): string;
    encodeFunctionData(functionFragment: "initialize", values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: "multicall", values: [BytesLike[]]): string;
    encodeFunctionData(functionFragment: "numberOfDeposits", values?: undefined): string;
    encodeFunctionData(functionFragment: "oftMessengers", values: [string]): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "pauseDeposits", values: [boolean]): string;
    encodeFunctionData(functionFragment: "pauseFills", values: [boolean]): string;
    encodeFunctionData(functionFragment: "pausedDeposits", values?: undefined): string;
    encodeFunctionData(functionFragment: "pausedFills", values?: undefined): string;
    encodeFunctionData(functionFragment: "proxiableUUID", values?: undefined): string;
    encodeFunctionData(functionFragment: "relayRootBundle", values: [BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "relayerRefund", values: [string, string]): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "requestSlowFill", values: [V3SpokePoolInterface.V3RelayDataStruct]): string;
    encodeFunctionData(functionFragment: "rootBundles", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setCrossDomainAdmin", values: [string]): string;
    encodeFunctionData(functionFragment: "setOftMessenger", values: [string, string]): string;
    encodeFunctionData(functionFragment: "setWithdrawalRecipient", values: [string]): string;
    encodeFunctionData(functionFragment: "speedUpDeposit", values: [
        BytesLike,
        BigNumberish,
        BigNumberish,
        BytesLike,
        BytesLike,
        BytesLike
    ]): string;
    encodeFunctionData(functionFragment: "speedUpV3Deposit", values: [string, BigNumberish, BigNumberish, string, BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string;
    encodeFunctionData(functionFragment: "tryMulticall", values: [BytesLike[]]): string;
    encodeFunctionData(functionFragment: "unsafeDeposit", values: [
        BytesLike,
        BytesLike,
        BytesLike,
        BytesLike,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BytesLike,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BytesLike
    ]): string;
    encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string;
    encodeFunctionData(functionFragment: "upgradeToAndCall", values: [string, BytesLike]): string;
    encodeFunctionData(functionFragment: "withdrawalRecipient", values?: undefined): string;
    encodeFunctionData(functionFragment: "wrappedNativeToken", values?: undefined): string;
    decodeFunctionResult(functionFragment: "EMPTY_MSG_BYTES", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "EMPTY_RELAYER", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "EMPTY_REPAYMENT_CHAIN_ID", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "INFINITE_FILL_DEADLINE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MAX_EXCLUSIVITY_PERIOD_SECONDS", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MAX_TRANSFER_SIZE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "OFT_DST_EID", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "OFT_FEE_CAP", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "UPDATE_BYTES32_DEPOSIT_DETAILS_HASH", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "__SpokePool_init", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimRelayerRefund", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "crossDomainAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositDeprecated_5947912356", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositFor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositNow", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositQuoteTimeBuffer", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositV3", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositV3Now", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emergencyDeleteRootBundle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "executeExternalCall", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "executeRelayerRefundLeaf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "executeSlowRelayLeaf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fill", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fillDeadlineBuffer", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fillRelay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fillRelayWithUpdatedDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fillStatuses", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fillV3Relay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getCurrentTime", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRelayerRefund", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getUnsafeDepositId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getV3RelayHash", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "numberOfDeposits", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oftMessengers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pauseDeposits", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pauseFills", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pausedDeposits", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pausedFills", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "proxiableUUID", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "relayRootBundle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "relayerRefund", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "requestSlowFill", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rootBundles", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setCrossDomainAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setOftMessenger", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setWithdrawalRecipient", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "speedUpDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "speedUpV3Deposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tryMulticall", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unsafeDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "upgradeToAndCall", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawalRecipient", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "wrappedNativeToken", data: BytesLike): Result;
    events: {
        "AdminChanged(address,address)": EventFragment;
        "AdminExternalCallExecuted(address,bytes)": EventFragment;
        "BeaconUpgraded(address)": EventFragment;
        "ClaimedRelayerRefund(bytes32,bytes32,uint256,address)": EventFragment;
        "EmergencyDeletedRootBundle(uint256)": EventFragment;
        "EnabledDepositRoute(address,uint256,bool)": EventFragment;
        "ExecutedRelayerRefundRoot(uint256,uint256,uint256[],uint32,uint32,address,address[],bool,address)": EventFragment;
        "FilledRelay(bytes32,bytes32,uint256,uint256,uint256,uint256,uint256,uint32,uint32,bytes32,bytes32,bytes32,bytes32,bytes32,(bytes32,bytes32,uint256,uint8))": EventFragment;
        "FilledV3Relay(address,address,uint256,uint256,uint256,uint256,uint32,uint32,uint32,address,address,address,address,bytes,(address,bytes,uint256,uint8))": EventFragment;
        "FundsDeposited(bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,uint32,bytes32,bytes32,bytes32,bytes)": EventFragment;
        "Initialized(uint8)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "PausedDeposits(bool)": EventFragment;
        "PausedFills(bool)": EventFragment;
        "RelayedRootBundle(uint32,bytes32,bytes32)": EventFragment;
        "RequestedSlowFill(bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,bytes32,bytes32,bytes32,bytes32)": EventFragment;
        "RequestedSpeedUpDeposit(uint256,uint256,bytes32,bytes32,bytes,bytes)": EventFragment;
        "RequestedSpeedUpV3Deposit(uint256,uint32,address,address,bytes,bytes)": EventFragment;
        "RequestedV3SlowFill(address,address,uint256,uint256,uint256,uint32,uint32,uint32,address,address,address,bytes)": EventFragment;
        "SetOFTMessenger(address,address)": EventFragment;
        "SetWithdrawalRecipient(address)": EventFragment;
        "SetXDomainAdmin(address)": EventFragment;
        "TokensBridged(uint256,uint256,uint32,bytes32,address)": EventFragment;
        "Upgraded(address)": EventFragment;
        "V3FundsDeposited(address,address,uint256,uint256,uint256,uint32,uint32,uint32,uint32,address,address,address,bytes)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "AdminExternalCallExecuted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ClaimedRelayerRefund"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "EmergencyDeletedRootBundle"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "EnabledDepositRoute"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ExecutedRelayerRefundRoot"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "FilledRelay"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "FilledV3Relay"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "FundsDeposited"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PausedDeposits"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PausedFills"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RelayedRootBundle"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RequestedSlowFill"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RequestedSpeedUpDeposit"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RequestedSpeedUpV3Deposit"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RequestedV3SlowFill"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetOFTMessenger"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetWithdrawalRecipient"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetXDomainAdmin"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokensBridged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "V3FundsDeposited"): EventFragment;
}
export interface AdminChangedEventObject {
    previousAdmin: string;
    newAdmin: string;
}
export type AdminChangedEvent = TypedEvent<[
    string,
    string
], AdminChangedEventObject>;
export type AdminChangedEventFilter = TypedEventFilter<AdminChangedEvent>;
export interface AdminExternalCallExecutedEventObject {
    target: string;
    data: string;
}
export type AdminExternalCallExecutedEvent = TypedEvent<[
    string,
    string
], AdminExternalCallExecutedEventObject>;
export type AdminExternalCallExecutedEventFilter = TypedEventFilter<AdminExternalCallExecutedEvent>;
export interface BeaconUpgradedEventObject {
    beacon: string;
}
export type BeaconUpgradedEvent = TypedEvent<[
    string
], BeaconUpgradedEventObject>;
export type BeaconUpgradedEventFilter = TypedEventFilter<BeaconUpgradedEvent>;
export interface ClaimedRelayerRefundEventObject {
    l2TokenAddress: string;
    refundAddress: string;
    amount: BigNumber;
    caller: string;
}
export type ClaimedRelayerRefundEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    string
], ClaimedRelayerRefundEventObject>;
export type ClaimedRelayerRefundEventFilter = TypedEventFilter<ClaimedRelayerRefundEvent>;
export interface EmergencyDeletedRootBundleEventObject {
    rootBundleId: BigNumber;
}
export type EmergencyDeletedRootBundleEvent = TypedEvent<[
    BigNumber
], EmergencyDeletedRootBundleEventObject>;
export type EmergencyDeletedRootBundleEventFilter = TypedEventFilter<EmergencyDeletedRootBundleEvent>;
export interface EnabledDepositRouteEventObject {
    originToken: string;
    destinationChainId: BigNumber;
    enabled: boolean;
}
export type EnabledDepositRouteEvent = TypedEvent<[
    string,
    BigNumber,
    boolean
], EnabledDepositRouteEventObject>;
export type EnabledDepositRouteEventFilter = TypedEventFilter<EnabledDepositRouteEvent>;
export interface ExecutedRelayerRefundRootEventObject {
    amountToReturn: BigNumber;
    chainId: BigNumber;
    refundAmounts: BigNumber[];
    rootBundleId: number;
    leafId: number;
    l2TokenAddress: string;
    refundAddresses: string[];
    deferredRefunds: boolean;
    caller: string;
}
export type ExecutedRelayerRefundRootEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber[],
    number,
    number,
    string,
    string[],
    boolean,
    string
], ExecutedRelayerRefundRootEventObject>;
export type ExecutedRelayerRefundRootEventFilter = TypedEventFilter<ExecutedRelayerRefundRootEvent>;
export interface FilledRelayEventObject {
    inputToken: string;
    outputToken: string;
    inputAmount: BigNumber;
    outputAmount: BigNumber;
    repaymentChainId: BigNumber;
    originChainId: BigNumber;
    depositId: BigNumber;
    fillDeadline: number;
    exclusivityDeadline: number;
    exclusiveRelayer: string;
    relayer: string;
    depositor: string;
    recipient: string;
    messageHash: string;
    relayExecutionInfo: V3SpokePoolInterface.V3RelayExecutionEventInfoStructOutput;
}
export type FilledRelayEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    number,
    number,
    string,
    string,
    string,
    string,
    string,
    V3SpokePoolInterface.V3RelayExecutionEventInfoStructOutput
], FilledRelayEventObject>;
export type FilledRelayEventFilter = TypedEventFilter<FilledRelayEvent>;
export interface FilledV3RelayEventObject {
    inputToken: string;
    outputToken: string;
    inputAmount: BigNumber;
    outputAmount: BigNumber;
    repaymentChainId: BigNumber;
    originChainId: BigNumber;
    depositId: number;
    fillDeadline: number;
    exclusivityDeadline: number;
    exclusiveRelayer: string;
    relayer: string;
    depositor: string;
    recipient: string;
    message: string;
    relayExecutionInfo: V3SpokePoolInterface.LegacyV3RelayExecutionEventInfoStructOutput;
}
export type FilledV3RelayEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    number,
    number,
    number,
    string,
    string,
    string,
    string,
    string,
    V3SpokePoolInterface.LegacyV3RelayExecutionEventInfoStructOutput
], FilledV3RelayEventObject>;
export type FilledV3RelayEventFilter = TypedEventFilter<FilledV3RelayEvent>;
export interface FundsDepositedEventObject {
    inputToken: string;
    outputToken: string;
    inputAmount: BigNumber;
    outputAmount: BigNumber;
    destinationChainId: BigNumber;
    depositId: BigNumber;
    quoteTimestamp: number;
    fillDeadline: number;
    exclusivityDeadline: number;
    depositor: string;
    recipient: string;
    exclusiveRelayer: string;
    message: string;
}
export type FundsDepositedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    number,
    number,
    number,
    string,
    string,
    string,
    string
], FundsDepositedEventObject>;
export type FundsDepositedEventFilter = TypedEventFilter<FundsDepositedEvent>;
export interface InitializedEventObject {
    version: number;
}
export type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface PausedDepositsEventObject {
    isPaused: boolean;
}
export type PausedDepositsEvent = TypedEvent<[
    boolean
], PausedDepositsEventObject>;
export type PausedDepositsEventFilter = TypedEventFilter<PausedDepositsEvent>;
export interface PausedFillsEventObject {
    isPaused: boolean;
}
export type PausedFillsEvent = TypedEvent<[boolean], PausedFillsEventObject>;
export type PausedFillsEventFilter = TypedEventFilter<PausedFillsEvent>;
export interface RelayedRootBundleEventObject {
    rootBundleId: number;
    relayerRefundRoot: string;
    slowRelayRoot: string;
}
export type RelayedRootBundleEvent = TypedEvent<[
    number,
    string,
    string
], RelayedRootBundleEventObject>;
export type RelayedRootBundleEventFilter = TypedEventFilter<RelayedRootBundleEvent>;
export interface RequestedSlowFillEventObject {
    inputToken: string;
    outputToken: string;
    inputAmount: BigNumber;
    outputAmount: BigNumber;
    originChainId: BigNumber;
    depositId: BigNumber;
    fillDeadline: number;
    exclusivityDeadline: number;
    exclusiveRelayer: string;
    depositor: string;
    recipient: string;
    messageHash: string;
}
export type RequestedSlowFillEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    number,
    number,
    string,
    string,
    string,
    string
], RequestedSlowFillEventObject>;
export type RequestedSlowFillEventFilter = TypedEventFilter<RequestedSlowFillEvent>;
export interface RequestedSpeedUpDepositEventObject {
    updatedOutputAmount: BigNumber;
    depositId: BigNumber;
    depositor: string;
    updatedRecipient: string;
    updatedMessage: string;
    depositorSignature: string;
}
export type RequestedSpeedUpDepositEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    string,
    string,
    string,
    string
], RequestedSpeedUpDepositEventObject>;
export type RequestedSpeedUpDepositEventFilter = TypedEventFilter<RequestedSpeedUpDepositEvent>;
export interface RequestedSpeedUpV3DepositEventObject {
    updatedOutputAmount: BigNumber;
    depositId: number;
    depositor: string;
    updatedRecipient: string;
    updatedMessage: string;
    depositorSignature: string;
}
export type RequestedSpeedUpV3DepositEvent = TypedEvent<[
    BigNumber,
    number,
    string,
    string,
    string,
    string
], RequestedSpeedUpV3DepositEventObject>;
export type RequestedSpeedUpV3DepositEventFilter = TypedEventFilter<RequestedSpeedUpV3DepositEvent>;
export interface RequestedV3SlowFillEventObject {
    inputToken: string;
    outputToken: string;
    inputAmount: BigNumber;
    outputAmount: BigNumber;
    originChainId: BigNumber;
    depositId: number;
    fillDeadline: number;
    exclusivityDeadline: number;
    exclusiveRelayer: string;
    depositor: string;
    recipient: string;
    message: string;
}
export type RequestedV3SlowFillEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    number,
    number,
    number,
    string,
    string,
    string,
    string
], RequestedV3SlowFillEventObject>;
export type RequestedV3SlowFillEventFilter = TypedEventFilter<RequestedV3SlowFillEvent>;
export interface SetOFTMessengerEventObject {
    token: string;
    messenger: string;
}
export type SetOFTMessengerEvent = TypedEvent<[
    string,
    string
], SetOFTMessengerEventObject>;
export type SetOFTMessengerEventFilter = TypedEventFilter<SetOFTMessengerEvent>;
export interface SetWithdrawalRecipientEventObject {
    newWithdrawalRecipient: string;
}
export type SetWithdrawalRecipientEvent = TypedEvent<[
    string
], SetWithdrawalRecipientEventObject>;
export type SetWithdrawalRecipientEventFilter = TypedEventFilter<SetWithdrawalRecipientEvent>;
export interface SetXDomainAdminEventObject {
    newAdmin: string;
}
export type SetXDomainAdminEvent = TypedEvent<[
    string
], SetXDomainAdminEventObject>;
export type SetXDomainAdminEventFilter = TypedEventFilter<SetXDomainAdminEvent>;
export interface TokensBridgedEventObject {
    amountToReturn: BigNumber;
    chainId: BigNumber;
    leafId: number;
    l2TokenAddress: string;
    caller: string;
}
export type TokensBridgedEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    number,
    string,
    string
], TokensBridgedEventObject>;
export type TokensBridgedEventFilter = TypedEventFilter<TokensBridgedEvent>;
export interface UpgradedEventObject {
    implementation: string;
}
export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>;
export type UpgradedEventFilter = TypedEventFilter<UpgradedEvent>;
export interface V3FundsDepositedEventObject {
    inputToken: string;
    outputToken: string;
    inputAmount: BigNumber;
    outputAmount: BigNumber;
    destinationChainId: BigNumber;
    depositId: number;
    quoteTimestamp: number;
    fillDeadline: number;
    exclusivityDeadline: number;
    depositor: string;
    recipient: string;
    exclusiveRelayer: string;
    message: string;
}
export type V3FundsDepositedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    number,
    number,
    number,
    number,
    string,
    string,
    string,
    string
], V3FundsDepositedEventObject>;
export type V3FundsDepositedEventFilter = TypedEventFilter<V3FundsDepositedEvent>;
export interface Ethereum_SpokePool extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: Ethereum_SpokePoolInterface;
    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: {
        EMPTY_MSG_BYTES(overrides?: CallOverrides): Promise<[string]>;
        EMPTY_RELAYER(overrides?: CallOverrides): Promise<[string]>;
        EMPTY_REPAYMENT_CHAIN_ID(overrides?: CallOverrides): Promise<[BigNumber]>;
        INFINITE_FILL_DEADLINE(overrides?: CallOverrides): Promise<[number]>;
        MAX_EXCLUSIVITY_PERIOD_SECONDS(overrides?: CallOverrides): Promise<[number]>;
        MAX_TRANSFER_SIZE(overrides?: CallOverrides): Promise<[BigNumber]>;
        OFT_DST_EID(overrides?: CallOverrides): Promise<[number]>;
        OFT_FEE_CAP(overrides?: CallOverrides): Promise<[BigNumber]>;
        UPDATE_BYTES32_DEPOSIT_DETAILS_HASH(overrides?: CallOverrides): Promise<[string]>;
        __SpokePool_init(_initialDepositId: BigNumberish, _crossDomainAdmin: string, _withdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        chainId(overrides?: CallOverrides): Promise<[BigNumber]>;
        claimRelayerRefund(l2TokenAddress: BytesLike, refundAddress: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        crossDomainAdmin(overrides?: CallOverrides): Promise<[string]>;
        deposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        depositDeprecated_5947912356(arg0: string, arg1: string, arg2: BigNumberish, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BytesLike, arg7: BigNumberish, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        depositFor(arg0: string, arg1: string, arg2: string, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BigNumberish, arg7: BytesLike, arg8: BigNumberish, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        depositNow(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        depositQuoteTimeBuffer(overrides?: CallOverrides): Promise<[number]>;
        depositV3(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        depositV3Now(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        emergencyDeleteRootBundle(rootBundleId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        executeExternalCall(message: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        executeRelayerRefundLeaf(rootBundleId: BigNumberish, relayerRefundLeaf: SpokePoolInterface.RelayerRefundLeafStruct, proof: BytesLike[], overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        executeSlowRelayLeaf(slowFillLeaf: V3SpokePoolInterface.V3SlowFillStruct, rootBundleId: BigNumberish, proof: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        fill(orderId: BytesLike, originData: BytesLike, fillerData: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        fillDeadlineBuffer(overrides?: CallOverrides): Promise<[number]>;
        fillRelay(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        fillRelayWithUpdatedDeposit(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        fillStatuses(arg0: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>;
        fillV3Relay(relayData: V3SpokePoolInterface.V3RelayDataLegacyStruct, repaymentChainId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        getCurrentTime(overrides?: CallOverrides): Promise<[BigNumber]>;
        getRelayerRefund(l2TokenAddress: string, refundAddress: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        getUnsafeDepositId(msgSender: string, depositor: BytesLike, depositNonce: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        getV3RelayHash(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: CallOverrides): Promise<[string]>;
        initialize(_initialDepositId: BigNumberish, _withdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        multicall(data: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        numberOfDeposits(overrides?: CallOverrides): Promise<[number]>;
        oftMessengers(l2TokenAddress: string, overrides?: CallOverrides): Promise<[string] & {
            l2OftMessenger: string;
        }>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pauseDeposits(pause: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        pauseFills(pause: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        pausedDeposits(overrides?: CallOverrides): Promise<[boolean]>;
        pausedFills(overrides?: CallOverrides): Promise<[boolean]>;
        proxiableUUID(overrides?: CallOverrides): Promise<[string]>;
        relayRootBundle(relayerRefundRoot: BytesLike, slowRelayRoot: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        relayerRefund(arg0: string, arg1: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        renounceOwnership(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        requestSlowFill(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        rootBundles(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
            string,
            string
        ] & {
            slowRelayRoot: string;
            relayerRefundRoot: string;
        }>;
        setCrossDomainAdmin(newCrossDomainAdmin: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        setOftMessenger(token: string, messenger: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        setWithdrawalRecipient(newWithdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        speedUpDeposit(depositor: BytesLike, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        speedUpV3Deposit(depositor: string, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: string, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        tryMulticall(data: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        unsafeDeposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, depositNonce: BigNumberish, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        upgradeTo(newImplementation: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        withdrawalRecipient(overrides?: CallOverrides): Promise<[string]>;
        wrappedNativeToken(overrides?: CallOverrides): Promise<[string]>;
    };
    EMPTY_MSG_BYTES(overrides?: CallOverrides): Promise<string>;
    EMPTY_RELAYER(overrides?: CallOverrides): Promise<string>;
    EMPTY_REPAYMENT_CHAIN_ID(overrides?: CallOverrides): Promise<BigNumber>;
    INFINITE_FILL_DEADLINE(overrides?: CallOverrides): Promise<number>;
    MAX_EXCLUSIVITY_PERIOD_SECONDS(overrides?: CallOverrides): Promise<number>;
    MAX_TRANSFER_SIZE(overrides?: CallOverrides): Promise<BigNumber>;
    OFT_DST_EID(overrides?: CallOverrides): Promise<number>;
    OFT_FEE_CAP(overrides?: CallOverrides): Promise<BigNumber>;
    UPDATE_BYTES32_DEPOSIT_DETAILS_HASH(overrides?: CallOverrides): Promise<string>;
    __SpokePool_init(_initialDepositId: BigNumberish, _crossDomainAdmin: string, _withdrawalRecipient: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    chainId(overrides?: CallOverrides): Promise<BigNumber>;
    claimRelayerRefund(l2TokenAddress: BytesLike, refundAddress: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    crossDomainAdmin(overrides?: CallOverrides): Promise<string>;
    deposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    depositDeprecated_5947912356(arg0: string, arg1: string, arg2: BigNumberish, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BytesLike, arg7: BigNumberish, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    depositFor(arg0: string, arg1: string, arg2: string, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BigNumberish, arg7: BytesLike, arg8: BigNumberish, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    depositNow(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    depositQuoteTimeBuffer(overrides?: CallOverrides): Promise<number>;
    depositV3(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    depositV3Now(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    emergencyDeleteRootBundle(rootBundleId: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    executeExternalCall(message: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    executeRelayerRefundLeaf(rootBundleId: BigNumberish, relayerRefundLeaf: SpokePoolInterface.RelayerRefundLeafStruct, proof: BytesLike[], overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    executeSlowRelayLeaf(slowFillLeaf: V3SpokePoolInterface.V3SlowFillStruct, rootBundleId: BigNumberish, proof: BytesLike[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    fill(orderId: BytesLike, originData: BytesLike, fillerData: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    fillDeadlineBuffer(overrides?: CallOverrides): Promise<number>;
    fillRelay(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    fillRelayWithUpdatedDeposit(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    fillStatuses(arg0: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
    fillV3Relay(relayData: V3SpokePoolInterface.V3RelayDataLegacyStruct, repaymentChainId: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    getCurrentTime(overrides?: CallOverrides): Promise<BigNumber>;
    getRelayerRefund(l2TokenAddress: string, refundAddress: string, overrides?: CallOverrides): Promise<BigNumber>;
    getUnsafeDepositId(msgSender: string, depositor: BytesLike, depositNonce: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    getV3RelayHash(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: CallOverrides): Promise<string>;
    initialize(_initialDepositId: BigNumberish, _withdrawalRecipient: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    multicall(data: BytesLike[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    numberOfDeposits(overrides?: CallOverrides): Promise<number>;
    oftMessengers(l2TokenAddress: string, overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    pauseDeposits(pause: boolean, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    pauseFills(pause: boolean, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    pausedDeposits(overrides?: CallOverrides): Promise<boolean>;
    pausedFills(overrides?: CallOverrides): Promise<boolean>;
    proxiableUUID(overrides?: CallOverrides): Promise<string>;
    relayRootBundle(relayerRefundRoot: BytesLike, slowRelayRoot: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    relayerRefund(arg0: string, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
    renounceOwnership(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    requestSlowFill(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    rootBundles(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
        string,
        string
    ] & {
        slowRelayRoot: string;
        relayerRefundRoot: string;
    }>;
    setCrossDomainAdmin(newCrossDomainAdmin: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    setOftMessenger(token: string, messenger: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    setWithdrawalRecipient(newWithdrawalRecipient: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    speedUpDeposit(depositor: BytesLike, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    speedUpV3Deposit(depositor: string, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: string, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    tryMulticall(data: BytesLike[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    unsafeDeposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, depositNonce: BigNumberish, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    upgradeTo(newImplementation: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    withdrawalRecipient(overrides?: CallOverrides): Promise<string>;
    wrappedNativeToken(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        EMPTY_MSG_BYTES(overrides?: CallOverrides): Promise<string>;
        EMPTY_RELAYER(overrides?: CallOverrides): Promise<string>;
        EMPTY_REPAYMENT_CHAIN_ID(overrides?: CallOverrides): Promise<BigNumber>;
        INFINITE_FILL_DEADLINE(overrides?: CallOverrides): Promise<number>;
        MAX_EXCLUSIVITY_PERIOD_SECONDS(overrides?: CallOverrides): Promise<number>;
        MAX_TRANSFER_SIZE(overrides?: CallOverrides): Promise<BigNumber>;
        OFT_DST_EID(overrides?: CallOverrides): Promise<number>;
        OFT_FEE_CAP(overrides?: CallOverrides): Promise<BigNumber>;
        UPDATE_BYTES32_DEPOSIT_DETAILS_HASH(overrides?: CallOverrides): Promise<string>;
        __SpokePool_init(_initialDepositId: BigNumberish, _crossDomainAdmin: string, _withdrawalRecipient: string, overrides?: CallOverrides): Promise<void>;
        chainId(overrides?: CallOverrides): Promise<BigNumber>;
        claimRelayerRefund(l2TokenAddress: BytesLike, refundAddress: BytesLike, overrides?: CallOverrides): Promise<void>;
        crossDomainAdmin(overrides?: CallOverrides): Promise<string>;
        deposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: CallOverrides): Promise<void>;
        depositDeprecated_5947912356(arg0: string, arg1: string, arg2: BigNumberish, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BytesLike, arg7: BigNumberish, overrides?: CallOverrides): Promise<void>;
        depositFor(arg0: string, arg1: string, arg2: string, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BigNumberish, arg7: BytesLike, arg8: BigNumberish, overrides?: CallOverrides): Promise<void>;
        depositNow(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: CallOverrides): Promise<void>;
        depositQuoteTimeBuffer(overrides?: CallOverrides): Promise<number>;
        depositV3(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: CallOverrides): Promise<void>;
        depositV3Now(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: CallOverrides): Promise<void>;
        emergencyDeleteRootBundle(rootBundleId: BigNumberish, overrides?: CallOverrides): Promise<void>;
        executeExternalCall(message: BytesLike, overrides?: CallOverrides): Promise<string>;
        executeRelayerRefundLeaf(rootBundleId: BigNumberish, relayerRefundLeaf: SpokePoolInterface.RelayerRefundLeafStruct, proof: BytesLike[], overrides?: CallOverrides): Promise<void>;
        executeSlowRelayLeaf(slowFillLeaf: V3SpokePoolInterface.V3SlowFillStruct, rootBundleId: BigNumberish, proof: BytesLike[], overrides?: CallOverrides): Promise<void>;
        fill(orderId: BytesLike, originData: BytesLike, fillerData: BytesLike, overrides?: CallOverrides): Promise<void>;
        fillDeadlineBuffer(overrides?: CallOverrides): Promise<number>;
        fillRelay(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, overrides?: CallOverrides): Promise<void>;
        fillRelayWithUpdatedDeposit(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: CallOverrides): Promise<void>;
        fillStatuses(arg0: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        fillV3Relay(relayData: V3SpokePoolInterface.V3RelayDataLegacyStruct, repaymentChainId: BigNumberish, overrides?: CallOverrides): Promise<void>;
        getCurrentTime(overrides?: CallOverrides): Promise<BigNumber>;
        getRelayerRefund(l2TokenAddress: string, refundAddress: string, overrides?: CallOverrides): Promise<BigNumber>;
        getUnsafeDepositId(msgSender: string, depositor: BytesLike, depositNonce: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getV3RelayHash(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: CallOverrides): Promise<string>;
        initialize(_initialDepositId: BigNumberish, _withdrawalRecipient: string, overrides?: CallOverrides): Promise<void>;
        multicall(data: BytesLike[], overrides?: CallOverrides): Promise<string[]>;
        numberOfDeposits(overrides?: CallOverrides): Promise<number>;
        oftMessengers(l2TokenAddress: string, overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        pauseDeposits(pause: boolean, overrides?: CallOverrides): Promise<void>;
        pauseFills(pause: boolean, overrides?: CallOverrides): Promise<void>;
        pausedDeposits(overrides?: CallOverrides): Promise<boolean>;
        pausedFills(overrides?: CallOverrides): Promise<boolean>;
        proxiableUUID(overrides?: CallOverrides): Promise<string>;
        relayRootBundle(relayerRefundRoot: BytesLike, slowRelayRoot: BytesLike, overrides?: CallOverrides): Promise<void>;
        relayerRefund(arg0: string, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        requestSlowFill(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: CallOverrides): Promise<void>;
        rootBundles(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
            string,
            string
        ] & {
            slowRelayRoot: string;
            relayerRefundRoot: string;
        }>;
        setCrossDomainAdmin(newCrossDomainAdmin: string, overrides?: CallOverrides): Promise<void>;
        setOftMessenger(token: string, messenger: string, overrides?: CallOverrides): Promise<void>;
        setWithdrawalRecipient(newWithdrawalRecipient: string, overrides?: CallOverrides): Promise<void>;
        speedUpDeposit(depositor: BytesLike, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: CallOverrides): Promise<void>;
        speedUpV3Deposit(depositor: string, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: string, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: CallOverrides): Promise<void>;
        transferOwnership(newOwner: string, overrides?: CallOverrides): Promise<void>;
        tryMulticall(data: BytesLike[], overrides?: CallOverrides): Promise<MultiCallerUpgradeable.ResultStructOutput[]>;
        unsafeDeposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, depositNonce: BigNumberish, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: CallOverrides): Promise<void>;
        upgradeTo(newImplementation: string, overrides?: CallOverrides): Promise<void>;
        upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: CallOverrides): Promise<void>;
        withdrawalRecipient(overrides?: CallOverrides): Promise<string>;
        wrappedNativeToken(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "AdminChanged(address,address)"(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
        AdminChanged(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
        "AdminExternalCallExecuted(address,bytes)"(target?: string | null, data?: null): AdminExternalCallExecutedEventFilter;
        AdminExternalCallExecuted(target?: string | null, data?: null): AdminExternalCallExecutedEventFilter;
        "BeaconUpgraded(address)"(beacon?: string | null): BeaconUpgradedEventFilter;
        BeaconUpgraded(beacon?: string | null): BeaconUpgradedEventFilter;
        "ClaimedRelayerRefund(bytes32,bytes32,uint256,address)"(l2TokenAddress?: BytesLike | null, refundAddress?: BytesLike | null, amount?: null, caller?: string | null): ClaimedRelayerRefundEventFilter;
        ClaimedRelayerRefund(l2TokenAddress?: BytesLike | null, refundAddress?: BytesLike | null, amount?: null, caller?: string | null): ClaimedRelayerRefundEventFilter;
        "EmergencyDeletedRootBundle(uint256)"(rootBundleId?: BigNumberish | null): EmergencyDeletedRootBundleEventFilter;
        EmergencyDeletedRootBundle(rootBundleId?: BigNumberish | null): EmergencyDeletedRootBundleEventFilter;
        "EnabledDepositRoute(address,uint256,bool)"(originToken?: string | null, destinationChainId?: BigNumberish | null, enabled?: null): EnabledDepositRouteEventFilter;
        EnabledDepositRoute(originToken?: string | null, destinationChainId?: BigNumberish | null, enabled?: null): EnabledDepositRouteEventFilter;
        "ExecutedRelayerRefundRoot(uint256,uint256,uint256[],uint32,uint32,address,address[],bool,address)"(amountToReturn?: null, chainId?: BigNumberish | null, refundAmounts?: null, rootBundleId?: BigNumberish | null, leafId?: BigNumberish | null, l2TokenAddress?: null, refundAddresses?: null, deferredRefunds?: null, caller?: null): ExecutedRelayerRefundRootEventFilter;
        ExecutedRelayerRefundRoot(amountToReturn?: null, chainId?: BigNumberish | null, refundAmounts?: null, rootBundleId?: BigNumberish | null, leafId?: BigNumberish | null, l2TokenAddress?: null, refundAddresses?: null, deferredRefunds?: null, caller?: null): ExecutedRelayerRefundRootEventFilter;
        "FilledRelay(bytes32,bytes32,uint256,uint256,uint256,uint256,uint256,uint32,uint32,bytes32,bytes32,bytes32,bytes32,bytes32,(bytes32,bytes32,uint256,uint8))"(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, repaymentChainId?: null, originChainId?: BigNumberish | null, depositId?: BigNumberish | null, fillDeadline?: null, exclusivityDeadline?: null, exclusiveRelayer?: null, relayer?: BytesLike | null, depositor?: null, recipient?: null, messageHash?: null, relayExecutionInfo?: null): FilledRelayEventFilter;
        FilledRelay(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, repaymentChainId?: null, originChainId?: BigNumberish | null, depositId?: BigNumberish | null, fillDeadline?: null, exclusivityDeadline?: null, exclusiveRelayer?: null, relayer?: BytesLike | null, depositor?: null, recipient?: null, messageHash?: null, relayExecutionInfo?: null): FilledRelayEventFilter;
        "FilledV3Relay(address,address,uint256,uint256,uint256,uint256,uint32,uint32,uint32,address,address,address,address,bytes,(address,bytes,uint256,uint8))"(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, repaymentChainId?: null, originChainId?: BigNumberish | null, depositId?: BigNumberish | null, fillDeadline?: null, exclusivityDeadline?: null, exclusiveRelayer?: null, relayer?: string | null, depositor?: null, recipient?: null, message?: null, relayExecutionInfo?: null): FilledV3RelayEventFilter;
        FilledV3Relay(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, repaymentChainId?: null, originChainId?: BigNumberish | null, depositId?: BigNumberish | null, fillDeadline?: null, exclusivityDeadline?: null, exclusiveRelayer?: null, relayer?: string | null, depositor?: null, recipient?: null, message?: null, relayExecutionInfo?: null): FilledV3RelayEventFilter;
        "FundsDeposited(bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,uint32,bytes32,bytes32,bytes32,bytes)"(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, destinationChainId?: BigNumberish | null, depositId?: BigNumberish | null, quoteTimestamp?: null, fillDeadline?: null, exclusivityDeadline?: null, depositor?: BytesLike | null, recipient?: null, exclusiveRelayer?: null, message?: null): FundsDepositedEventFilter;
        FundsDeposited(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, destinationChainId?: BigNumberish | null, depositId?: BigNumberish | null, quoteTimestamp?: null, fillDeadline?: null, exclusivityDeadline?: null, depositor?: BytesLike | null, recipient?: null, exclusiveRelayer?: null, message?: null): FundsDepositedEventFilter;
        "Initialized(uint8)"(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
        "PausedDeposits(bool)"(isPaused?: null): PausedDepositsEventFilter;
        PausedDeposits(isPaused?: null): PausedDepositsEventFilter;
        "PausedFills(bool)"(isPaused?: null): PausedFillsEventFilter;
        PausedFills(isPaused?: null): PausedFillsEventFilter;
        "RelayedRootBundle(uint32,bytes32,bytes32)"(rootBundleId?: BigNumberish | null, relayerRefundRoot?: BytesLike | null, slowRelayRoot?: BytesLike | null): RelayedRootBundleEventFilter;
        RelayedRootBundle(rootBundleId?: BigNumberish | null, relayerRefundRoot?: BytesLike | null, slowRelayRoot?: BytesLike | null): RelayedRootBundleEventFilter;
        "RequestedSlowFill(bytes32,bytes32,uint256,uint256,uint256,uint256,uint32,uint32,bytes32,bytes32,bytes32,bytes32)"(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, originChainId?: BigNumberish | null, depositId?: BigNumberish | null, fillDeadline?: null, exclusivityDeadline?: null, exclusiveRelayer?: null, depositor?: null, recipient?: null, messageHash?: null): RequestedSlowFillEventFilter;
        RequestedSlowFill(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, originChainId?: BigNumberish | null, depositId?: BigNumberish | null, fillDeadline?: null, exclusivityDeadline?: null, exclusiveRelayer?: null, depositor?: null, recipient?: null, messageHash?: null): RequestedSlowFillEventFilter;
        "RequestedSpeedUpDeposit(uint256,uint256,bytes32,bytes32,bytes,bytes)"(updatedOutputAmount?: null, depositId?: BigNumberish | null, depositor?: BytesLike | null, updatedRecipient?: null, updatedMessage?: null, depositorSignature?: null): RequestedSpeedUpDepositEventFilter;
        RequestedSpeedUpDeposit(updatedOutputAmount?: null, depositId?: BigNumberish | null, depositor?: BytesLike | null, updatedRecipient?: null, updatedMessage?: null, depositorSignature?: null): RequestedSpeedUpDepositEventFilter;
        "RequestedSpeedUpV3Deposit(uint256,uint32,address,address,bytes,bytes)"(updatedOutputAmount?: null, depositId?: BigNumberish | null, depositor?: string | null, updatedRecipient?: null, updatedMessage?: null, depositorSignature?: null): RequestedSpeedUpV3DepositEventFilter;
        RequestedSpeedUpV3Deposit(updatedOutputAmount?: null, depositId?: BigNumberish | null, depositor?: string | null, updatedRecipient?: null, updatedMessage?: null, depositorSignature?: null): RequestedSpeedUpV3DepositEventFilter;
        "RequestedV3SlowFill(address,address,uint256,uint256,uint256,uint32,uint32,uint32,address,address,address,bytes)"(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, originChainId?: BigNumberish | null, depositId?: BigNumberish | null, fillDeadline?: null, exclusivityDeadline?: null, exclusiveRelayer?: null, depositor?: null, recipient?: null, message?: null): RequestedV3SlowFillEventFilter;
        RequestedV3SlowFill(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, originChainId?: BigNumberish | null, depositId?: BigNumberish | null, fillDeadline?: null, exclusivityDeadline?: null, exclusiveRelayer?: null, depositor?: null, recipient?: null, message?: null): RequestedV3SlowFillEventFilter;
        "SetOFTMessenger(address,address)"(token?: string | null, messenger?: string | null): SetOFTMessengerEventFilter;
        SetOFTMessenger(token?: string | null, messenger?: string | null): SetOFTMessengerEventFilter;
        "SetWithdrawalRecipient(address)"(newWithdrawalRecipient?: string | null): SetWithdrawalRecipientEventFilter;
        SetWithdrawalRecipient(newWithdrawalRecipient?: string | null): SetWithdrawalRecipientEventFilter;
        "SetXDomainAdmin(address)"(newAdmin?: string | null): SetXDomainAdminEventFilter;
        SetXDomainAdmin(newAdmin?: string | null): SetXDomainAdminEventFilter;
        "TokensBridged(uint256,uint256,uint32,bytes32,address)"(amountToReturn?: null, chainId?: BigNumberish | null, leafId?: BigNumberish | null, l2TokenAddress?: BytesLike | null, caller?: null): TokensBridgedEventFilter;
        TokensBridged(amountToReturn?: null, chainId?: BigNumberish | null, leafId?: BigNumberish | null, l2TokenAddress?: BytesLike | null, caller?: null): TokensBridgedEventFilter;
        "Upgraded(address)"(implementation?: string | null): UpgradedEventFilter;
        Upgraded(implementation?: string | null): UpgradedEventFilter;
        "V3FundsDeposited(address,address,uint256,uint256,uint256,uint32,uint32,uint32,uint32,address,address,address,bytes)"(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, destinationChainId?: BigNumberish | null, depositId?: BigNumberish | null, quoteTimestamp?: null, fillDeadline?: null, exclusivityDeadline?: null, depositor?: string | null, recipient?: null, exclusiveRelayer?: null, message?: null): V3FundsDepositedEventFilter;
        V3FundsDeposited(inputToken?: null, outputToken?: null, inputAmount?: null, outputAmount?: null, destinationChainId?: BigNumberish | null, depositId?: BigNumberish | null, quoteTimestamp?: null, fillDeadline?: null, exclusivityDeadline?: null, depositor?: string | null, recipient?: null, exclusiveRelayer?: null, message?: null): V3FundsDepositedEventFilter;
    };
    estimateGas: {
        EMPTY_MSG_BYTES(overrides?: CallOverrides): Promise<BigNumber>;
        EMPTY_RELAYER(overrides?: CallOverrides): Promise<BigNumber>;
        EMPTY_REPAYMENT_CHAIN_ID(overrides?: CallOverrides): Promise<BigNumber>;
        INFINITE_FILL_DEADLINE(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_EXCLUSIVITY_PERIOD_SECONDS(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_TRANSFER_SIZE(overrides?: CallOverrides): Promise<BigNumber>;
        OFT_DST_EID(overrides?: CallOverrides): Promise<BigNumber>;
        OFT_FEE_CAP(overrides?: CallOverrides): Promise<BigNumber>;
        UPDATE_BYTES32_DEPOSIT_DETAILS_HASH(overrides?: CallOverrides): Promise<BigNumber>;
        __SpokePool_init(_initialDepositId: BigNumberish, _crossDomainAdmin: string, _withdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        chainId(overrides?: CallOverrides): Promise<BigNumber>;
        claimRelayerRefund(l2TokenAddress: BytesLike, refundAddress: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        crossDomainAdmin(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        depositDeprecated_5947912356(arg0: string, arg1: string, arg2: BigNumberish, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BytesLike, arg7: BigNumberish, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        depositFor(arg0: string, arg1: string, arg2: string, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BigNumberish, arg7: BytesLike, arg8: BigNumberish, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        depositNow(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        depositQuoteTimeBuffer(overrides?: CallOverrides): Promise<BigNumber>;
        depositV3(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        depositV3Now(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        emergencyDeleteRootBundle(rootBundleId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        executeExternalCall(message: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        executeRelayerRefundLeaf(rootBundleId: BigNumberish, relayerRefundLeaf: SpokePoolInterface.RelayerRefundLeafStruct, proof: BytesLike[], overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        executeSlowRelayLeaf(slowFillLeaf: V3SpokePoolInterface.V3SlowFillStruct, rootBundleId: BigNumberish, proof: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        fill(orderId: BytesLike, originData: BytesLike, fillerData: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        fillDeadlineBuffer(overrides?: CallOverrides): Promise<BigNumber>;
        fillRelay(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        fillRelayWithUpdatedDeposit(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        fillStatuses(arg0: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        fillV3Relay(relayData: V3SpokePoolInterface.V3RelayDataLegacyStruct, repaymentChainId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        getCurrentTime(overrides?: CallOverrides): Promise<BigNumber>;
        getRelayerRefund(l2TokenAddress: string, refundAddress: string, overrides?: CallOverrides): Promise<BigNumber>;
        getUnsafeDepositId(msgSender: string, depositor: BytesLike, depositNonce: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getV3RelayHash(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_initialDepositId: BigNumberish, _withdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        multicall(data: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        numberOfDeposits(overrides?: CallOverrides): Promise<BigNumber>;
        oftMessengers(l2TokenAddress: string, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pauseDeposits(pause: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        pauseFills(pause: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        pausedDeposits(overrides?: CallOverrides): Promise<BigNumber>;
        pausedFills(overrides?: CallOverrides): Promise<BigNumber>;
        proxiableUUID(overrides?: CallOverrides): Promise<BigNumber>;
        relayRootBundle(relayerRefundRoot: BytesLike, slowRelayRoot: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        relayerRefund(arg0: string, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        requestSlowFill(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        rootBundles(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        setCrossDomainAdmin(newCrossDomainAdmin: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        setOftMessenger(token: string, messenger: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        setWithdrawalRecipient(newWithdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        speedUpDeposit(depositor: BytesLike, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        speedUpV3Deposit(depositor: string, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: string, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        tryMulticall(data: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        unsafeDeposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, depositNonce: BigNumberish, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        upgradeTo(newImplementation: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<BigNumber>;
        withdrawalRecipient(overrides?: CallOverrides): Promise<BigNumber>;
        wrappedNativeToken(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        EMPTY_MSG_BYTES(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        EMPTY_RELAYER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        EMPTY_REPAYMENT_CHAIN_ID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        INFINITE_FILL_DEADLINE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_EXCLUSIVITY_PERIOD_SECONDS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_TRANSFER_SIZE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        OFT_DST_EID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        OFT_FEE_CAP(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        UPDATE_BYTES32_DEPOSIT_DETAILS_HASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        __SpokePool_init(_initialDepositId: BigNumberish, _crossDomainAdmin: string, _withdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        chainId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimRelayerRefund(l2TokenAddress: BytesLike, refundAddress: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        crossDomainAdmin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        depositDeprecated_5947912356(arg0: string, arg1: string, arg2: BigNumberish, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BytesLike, arg7: BigNumberish, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        depositFor(arg0: string, arg1: string, arg2: string, arg3: BigNumberish, arg4: BigNumberish, arg5: BigNumberish, arg6: BigNumberish, arg7: BytesLike, arg8: BigNumberish, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        depositNow(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        depositQuoteTimeBuffer(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositV3(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        depositV3Now(depositor: string, recipient: string, inputToken: string, outputToken: string, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: string, fillDeadlineOffset: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        emergencyDeleteRootBundle(rootBundleId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        executeExternalCall(message: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        executeRelayerRefundLeaf(rootBundleId: BigNumberish, relayerRefundLeaf: SpokePoolInterface.RelayerRefundLeafStruct, proof: BytesLike[], overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        executeSlowRelayLeaf(slowFillLeaf: V3SpokePoolInterface.V3SlowFillStruct, rootBundleId: BigNumberish, proof: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        fill(orderId: BytesLike, originData: BytesLike, fillerData: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        fillDeadlineBuffer(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fillRelay(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        fillRelayWithUpdatedDeposit(relayData: V3SpokePoolInterface.V3RelayDataStruct, repaymentChainId: BigNumberish, repaymentAddress: BytesLike, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        fillStatuses(arg0: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fillV3Relay(relayData: V3SpokePoolInterface.V3RelayDataLegacyStruct, repaymentChainId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        getCurrentTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRelayerRefund(l2TokenAddress: string, refundAddress: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUnsafeDepositId(msgSender: string, depositor: BytesLike, depositNonce: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getV3RelayHash(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(_initialDepositId: BigNumberish, _withdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        multicall(data: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        numberOfDeposits(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        oftMessengers(l2TokenAddress: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pauseDeposits(pause: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        pauseFills(pause: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        pausedDeposits(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pausedFills(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        proxiableUUID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        relayRootBundle(relayerRefundRoot: BytesLike, slowRelayRoot: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        relayerRefund(arg0: string, arg1: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        requestSlowFill(relayData: V3SpokePoolInterface.V3RelayDataStruct, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        rootBundles(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setCrossDomainAdmin(newCrossDomainAdmin: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        setOftMessenger(token: string, messenger: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        setWithdrawalRecipient(newWithdrawalRecipient: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        speedUpDeposit(depositor: BytesLike, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: BytesLike, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        speedUpV3Deposit(depositor: string, depositId: BigNumberish, updatedOutputAmount: BigNumberish, updatedRecipient: string, updatedMessage: BytesLike, depositorSignature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        tryMulticall(data: BytesLike[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        unsafeDeposit(depositor: BytesLike, recipient: BytesLike, inputToken: BytesLike, outputToken: BytesLike, inputAmount: BigNumberish, outputAmount: BigNumberish, destinationChainId: BigNumberish, exclusiveRelayer: BytesLike, depositNonce: BigNumberish, quoteTimestamp: BigNumberish, fillDeadline: BigNumberish, exclusivityParameter: BigNumberish, message: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        upgradeTo(newImplementation: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: PayableOverrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        withdrawalRecipient(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        wrappedNativeToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
//# sourceMappingURL=Ethereum_SpokePool.d.ts.map