import { ContractFactory, ContractTransactionResponse } from 'ethers';
import type { Signer, BigNumberish, AddressLike, ContractDeployTransaction, ContractRunner } from 'ethers';
import type { NonPayableOverrides } from '../common';
import type { CircleRelayer, CircleRelayerInterface } from '../CircleRelayer';
type CircleRelayerConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class CircleRelayer__factory extends ContractFactory {
    constructor(...args: CircleRelayerConstructorParams);
    getDeployTransaction(circleIntegration_: AddressLike, nativeTokenDecimals_: BigNumberish, feeRecipient_: AddressLike, ownerAssistant_: AddressLike, overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<ContractDeployTransaction>;
    deploy(circleIntegration_: AddressLike, nativeTokenDecimals_: BigNumberish, feeRecipient_: AddressLike, ownerAssistant_: AddressLike, overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<CircleRelayer & {
        deploymentTransaction(): ContractTransactionResponse;
    }>;
    connect(runner: ContractRunner | null): CircleRelayer__factory;
    static readonly bytecode = " ";
    static readonly abi: readonly [{
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "circleIntegration_";
            readonly type: "address";
        }, {
            readonly internalType: "uint8";
            readonly name: "nativeTokenDecimals_";
            readonly type: "uint8";
        }, {
            readonly internalType: "address";
            readonly name: "feeRecipient_";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "ownerAssistant_";
            readonly type: "address";
        }];
        readonly stateMutability: "nonpayable";
        readonly type: "constructor";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "previousAdmin";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "newAdmin";
            readonly type: "address";
        }];
        readonly name: "AdminChanged";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "beacon";
            readonly type: "address";
        }];
        readonly name: "BeaconUpgraded";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "oldRecipient";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "newRecipient";
            readonly type: "address";
        }];
        readonly name: "FeeRecipientUpdated";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "oldOwner";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "newOwner";
            readonly type: "address";
        }];
        readonly name: "OwnershipTransfered";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "recipient";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "relayer";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "tokenAmount";
            readonly type: "uint256";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "nativeAmount";
            readonly type: "uint256";
        }];
        readonly name: "SwapExecuted";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "uint256";
            readonly name: "swapRate";
            readonly type: "uint256";
        }];
        readonly name: "SwapRateUpdated";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "implementation";
            readonly type: "address";
        }];
        readonly name: "Upgraded";
        readonly type: "event";
    }, {
        readonly inputs: readonly [];
        readonly name: "VERSION";
        readonly outputs: readonly [{
            readonly internalType: "string";
            readonly name: "";
            readonly type: "string";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bytes32";
            readonly name: "address_";
            readonly type: "bytes32";
        }];
        readonly name: "bytes32ToAddress";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "contract IERC20Metadata";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "calculateMaxSwapAmountIn";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "maxAllowed";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "contract IERC20Metadata";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "toNativeAmount";
            readonly type: "uint256";
        }];
        readonly name: "calculateNativeSwapAmountOut";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "nativeAmount";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }];
        readonly name: "cancelOwnershipTransferRequest";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "chainId";
        readonly outputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "";
            readonly type: "uint16";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "circleIntegration";
        readonly outputs: readonly [{
            readonly internalType: "contract ICircleIntegration";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "confirmOwnershipTransferRequest";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "encoded";
            readonly type: "bytes";
        }];
        readonly name: "decodeTransferTokensWithRelay";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint8";
                readonly name: "payloadId";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint256";
                readonly name: "targetRelayerFee";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "toNativeTokenAmount";
                readonly type: "uint256";
            }, {
                readonly internalType: "bytes32";
                readonly name: "targetRecipientWallet";
                readonly type: "bytes32";
            }];
            readonly internalType: "struct CircleRelayerStructs.TransferTokensWithRelay";
            readonly name: "transfer";
            readonly type: "tuple";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint8";
                readonly name: "payloadId";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint256";
                readonly name: "targetRelayerFee";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "toNativeTokenAmount";
                readonly type: "uint256";
            }, {
                readonly internalType: "bytes32";
                readonly name: "targetRecipientWallet";
                readonly type: "bytes32";
            }];
            readonly internalType: "struct CircleRelayerStructs.TransferTokensWithRelay";
            readonly name: "transfer";
            readonly type: "tuple";
        }];
        readonly name: "encodeTransferTokensWithRelay";
        readonly outputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "encoded";
            readonly type: "bytes";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "feeRecipient";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "getPaused";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "paused";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "emitterChainId";
            readonly type: "uint16";
        }];
        readonly name: "getRegisteredContract";
        readonly outputs: readonly [{
            readonly internalType: "bytes32";
            readonly name: "";
            readonly type: "bytes32";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "maxNativeSwapAmount";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "nativeSwapRate";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "nativeSwapRatePrecision";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "nativeTokenDecimals";
        readonly outputs: readonly [{
            readonly internalType: "uint8";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "owner";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "ownerAssistant";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "pendingOwner";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes";
                readonly name: "encodedWormholeMessage";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "circleBridgeMessage";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "circleAttestation";
                readonly type: "bytes";
            }];
            readonly internalType: "struct ICircleIntegration.RedeemParameters";
            readonly name: "redeemParams";
            readonly type: "tuple";
        }];
        readonly name: "redeemTokens";
        readonly outputs: readonly [];
        readonly stateMutability: "payable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "bytes32";
            readonly name: "contractAddress";
            readonly type: "bytes32";
        }];
        readonly name: "registerContract";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "relayerFee";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "bool";
            readonly name: "paused";
            readonly type: "bool";
        }];
        readonly name: "setPauseForTransfers";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "address";
            readonly name: "newOwner";
            readonly type: "address";
        }];
        readonly name: "submitOwnershipTransferRequest";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "contract IERC20Metadata";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "toNativeTokenAmount";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint16";
            readonly name: "targetChain";
            readonly type: "uint16";
        }, {
            readonly internalType: "bytes32";
            readonly name: "targetRecipientWallet";
            readonly type: "bytes32";
        }];
        readonly name: "transferTokensWithRelay";
        readonly outputs: readonly [{
            readonly internalType: "uint64";
            readonly name: "messageSequence";
            readonly type: "uint64";
        }];
        readonly stateMutability: "payable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "address";
            readonly name: "newFeeRecipient";
            readonly type: "address";
        }];
        readonly name: "updateFeeRecipient";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "maxAmount";
            readonly type: "uint256";
        }];
        readonly name: "updateMaxNativeSwapAmount";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "swapRate";
            readonly type: "uint256";
        }];
        readonly name: "updateNativeSwapRate";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "uint256";
            readonly name: "nativeSwapRatePrecision_";
            readonly type: "uint256";
        }];
        readonly name: "updateNativeSwapRatePrecision";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "address";
            readonly name: "newAssistant";
            readonly type: "address";
        }];
        readonly name: "updateOwnerAssistant";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId_";
            readonly type: "uint16";
        }, {
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly name: "updateRelayerFee";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "wormhole";
        readonly outputs: readonly [{
            readonly internalType: "contract IWormhole";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }];
    static createInterface(): CircleRelayerInterface;
    static connect(address: string, runner?: ContractRunner | null): CircleRelayer;
}
export {};
//# sourceMappingURL=CircleRelayer__factory.d.ts.map