import { Signer, ContractFactory, Overrides } from "ethers";
import type { Provider, TransactionRequest } from "@ethersproject/providers";
import type { MockBridgeHub, MockBridgeHubInterface } from "../MockBridgeHub";
type MockBridgeHubConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class MockBridgeHub__factory extends ContractFactory {
    constructor(...args: MockBridgeHubConstructorParams);
    deploy(_sharedBridge: string, overrides?: Overrides & {
        from?: string;
    }): Promise<MockBridgeHub>;
    getDeployTransaction(_sharedBridge: string, overrides?: Overrides & {
        from?: string;
    }): TransactionRequest;
    attach(address: string): MockBridgeHub;
    connect(signer: Signer): MockBridgeHub__factory;
    static readonly bytecode = "0x60a034606657601f61055138819003918201601f19168301916001600160401b03831184841017606a57808492602094604052833981010312606657516001600160a01b03811681036066576080526040516104d2908161007f8239608051816102ee0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816324fd57fb146103125750806338720778146102cf57806359ec65a21461026d578063716232741461021b5780637f1ecd79146101bd5763d52471c11461005e575f80fd5b610067366103cb565b60405160208101906020825282356040820152602083013560608201526001600160a01b0361009860408501610400565b166080820152606083013560a08201526100cb6100b86080850185610414565b61012060c0850152610160840191610446565b9260a081013560e083015260c081013561010083015260e0810135601e19823603018112156101b95781016020813591019467ffffffffffffffff82116101b9578160051b9081360387136101b957603f96929196198582030161012086015281815260208082019782010196835f925b8484106101815760208989610176818e6001600160a01b036101616101008f01610400565b1661014083015203601f198101835282610466565b519020604051908152f35b9091929394986020806101a96001936101a38e601f19888403018a5288610414565b90610446565b9b0194019401929493919061013c565b5f80fd5b346101b95760403660031901126101b9576024356001600160a01b0381168091036101b9576004355f525f60205260405f20907fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790555f80f35b346101b95760803660031901126101b95760243560643560443581810291811591830414171561025957810180911161025957602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b346101b95760203660031901126101b957600435805f525f6020526001600160a01b0360405f205416155f146102b45750602060015b6001600160a01b0360405191168152f35b5f525f60205260206001600160a01b0360405f2054166102a3565b346101b9575f3660031901126101b95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60209061031e366103cb565b90610176816103bd6103a9868301958787528035604085015287810135606085015260408101356080850152606081013560a0850152608081013560c08501526001600160a01b0361037260a08301610400565b1660e08501526001600160a01b0361038c60c08301610400565b1661010085015260e0810135610120850152610100810190610414565b610120610140850152610160840191610446565b03601f198101835282610466565b60206003198201126101b9576004359067ffffffffffffffff82116101b9576101209082900360031901126101b95760040190565b35906001600160a01b03821682036101b957565b9035601e19823603018112156101b957016020813591019167ffffffffffffffff82116101b95781360383136101b957565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761048857604052565b634e487b7160e01b5f52604160045260245ffdfea2646970667358221220a1ae821fee7487ab89296f5b2972af2c58e3c4533aba2ada53ec604b7397037764736f6c634300081e0033";
    static readonly abi: readonly [{
        readonly type: "constructor";
        readonly inputs: readonly [{
            readonly name: "_sharedBridge";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "baseToken";
        readonly inputs: readonly [{
            readonly name: "_chainId";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "l2TransactionBaseCost";
        readonly inputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_gasPrice";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_l2GasLimit";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_l2GasPerPubdataByteLimit";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "requestL2TransactionDirect";
        readonly inputs: readonly [{
            readonly name: "_request";
            readonly type: "tuple";
            readonly internalType: "struct BridgeHubInterface.L2TransactionRequestDirect";
            readonly components: readonly [{
                readonly name: "chainId";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "mintValue";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "l2Contract";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "l2Value";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "l2Calldata";
                readonly type: "bytes";
                readonly internalType: "bytes";
            }, {
                readonly name: "l2GasLimit";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "l2GasPerPubdataByteLimit";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "factoryDeps";
                readonly type: "bytes[]";
                readonly internalType: "bytes[]";
            }, {
                readonly name: "refundRecipient";
                readonly type: "address";
                readonly internalType: "address";
            }];
        }];
        readonly outputs: readonly [{
            readonly name: "canonicalTxHash";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "payable";
    }, {
        readonly type: "function";
        readonly name: "requestL2TransactionTwoBridges";
        readonly inputs: readonly [{
            readonly name: "_request";
            readonly type: "tuple";
            readonly internalType: "struct BridgeHubInterface.L2TransactionRequestTwoBridgesOuter";
            readonly components: readonly [{
                readonly name: "chainId";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "mintValue";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "l2Value";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "l2GasLimit";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "l2GasPerPubdataByteLimit";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "refundRecipient";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "secondBridgeAddress";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "secondBridgeValue";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "secondBridgeCalldata";
                readonly type: "bytes";
                readonly internalType: "bytes";
            }];
        }];
        readonly outputs: readonly [{
            readonly name: "canonicalTxHash";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "payable";
    }, {
        readonly type: "function";
        readonly name: "setBaseToken";
        readonly inputs: readonly [{
            readonly name: "_chainId";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_baseToken";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "sharedBridge";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }];
    static createInterface(): MockBridgeHubInterface;
    static connect(address: string, signerOrProvider: Signer | Provider): MockBridgeHub;
}
export {};
