import { Signer, ContractFactory, Overrides } from "ethers";
import type { Provider, TransactionRequest } from "@ethersproject/providers";
import type { L2GatewayRouter, L2GatewayRouterInterface } from "../../../../contracts/test/ArbitrumMocks.sol/L2GatewayRouter";
type L2GatewayRouterConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class L2GatewayRouter__factory extends ContractFactory {
    constructor(...args: L2GatewayRouterConstructorParams);
    deploy(overrides?: Overrides & {
        from?: string;
    }): Promise<L2GatewayRouter>;
    getDeployTransaction(overrides?: Overrides & {
        from?: string;
    }): TransactionRequest;
    attach(address: string): L2GatewayRouter;
    connect(signer: Signer): L2GatewayRouter__factory;
    static readonly bytecode = "0x608080604052346015576103a3908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063614ef8de146102415780637b3a3c8b146100b65763a7e28d481461003a575f80fd5b346100b25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b25773ffffffffffffffffffffffffffffffffffffffff6100866102e3565b165f525f602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b5f80fd5b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b2576100e86102e3565b6100f0610306565b60643567ffffffffffffffff81116100b257366023820112156100b25780600401359067ffffffffffffffff82116102145761015360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601610329565b9180835236602482840101116100b2575f9281602460209401848301370101527f571ae1f9cefc0b41e754f2b973bf9455b2091122ebcc0aac3d777458965e3f65602073ffffffffffffffffffffffffffffffffffffffff8060405194604435865216941692a3602060406101c782610329565b5f81527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f835194859381855280519182918282880152018686015e5f85828601015201168101030190f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346100b25760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b2576102786102e3565b73ffffffffffffffffffffffffffffffffffffffff610295610306565b91165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790555f80f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100b257565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100b257565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff8211176102145760405256fea2646970667358221220b774dbf501892c3de11dd02da9e3d4cfc90212235c9a9a03f2c3b36789aa114e64736f6c634300081e0033";
    static readonly abi: readonly [{
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "l1Token";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "to";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly name: "OutboundTransfer";
        readonly type: "event";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "l1Token";
            readonly type: "address";
        }];
        readonly name: "calculateL2TokenAddress";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "l1Token";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "to";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }, {
            readonly internalType: "bytes";
            readonly name: "";
            readonly type: "bytes";
        }];
        readonly name: "outboundTransfer";
        readonly outputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "";
            readonly type: "bytes";
        }];
        readonly stateMutability: "payable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "l1Token";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "l2Token";
            readonly type: "address";
        }];
        readonly name: "setL2TokenAddress";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }];
    static createInterface(): L2GatewayRouterInterface;
    static connect(address: string, signerOrProvider: Signer | Provider): L2GatewayRouter;
}
export {};
