import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export declare namespace IQuote { type LzQuoteStruct = { rfqType: BigNumberish; srcChainId: BigNumberish; dstChainId: BigNumberish; srcPool: AddressLike; dstPool: AddressLike; trader: AddressLike; baseToken: AddressLike; quoteToken: AddressLike; baseTokenAmount: BigNumberish; quoteTokenAmount: BigNumberish; fees: BigNumberish; quoteExpiry: BigNumberish; txid: BytesLike; signedQuote: BytesLike; }; type LzQuoteStructOutput = [ rfqType: bigint, srcChainId: bigint, dstChainId: bigint, srcPool: string, dstPool: string, trader: string, baseToken: string, quoteToken: string, baseTokenAmount: bigint, quoteTokenAmount: bigint, fees: bigint, quoteExpiry: bigint, txid: string, signedQuote: string ] & { rfqType: bigint; srcChainId: bigint; dstChainId: bigint; srcPool: string; dstPool: string; trader: string; baseToken: string; quoteToken: string; baseTokenAmount: bigint; quoteTokenAmount: bigint; fees: bigint; quoteExpiry: bigint; txid: string; signedQuote: string; }; } export interface IHashflowLayerZeroUAInterface extends Interface { getFunction(nameOrSignature: "forceResumeReceive" | "getGovernance" | "getLzRemoteAddress" | "getLzSenderPoolAuthorization" | "lzReceive" | "lzSend" | "setConfig" | "setReceiveVersion" | "setSendVersion" | "updateGovernance" | "updateLzRemoteAddress" | "updateLzSenderPoolAuthorization"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "LzMessageFail" | "LzMessageSuccess" | "LzMessageUnauthorized" | "LzPoolAuthorizationChanged" | "LzRemoteAddressChanged" | "UpdateGovernance"): EventFragment; encodeFunctionData(functionFragment: "forceResumeReceive", values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "getGovernance", values?: undefined): string; encodeFunctionData(functionFragment: "getLzRemoteAddress", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getLzSenderPoolAuthorization", values: [AddressLike, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "lzReceive", values: [BigNumberish, BytesLike, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "lzSend", values: [IQuote.LzQuoteStruct, AddressLike, AddressLike, BytesLike]): string; encodeFunctionData(functionFragment: "setConfig", values: [BigNumberish, BigNumberish, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "setReceiveVersion", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "setSendVersion", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateGovernance", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateLzRemoteAddress", values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "updateLzSenderPoolAuthorization", values: [BigNumberish, AddressLike, boolean]): string; decodeFunctionResult(functionFragment: "forceResumeReceive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getGovernance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getLzRemoteAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getLzSenderPoolAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "lzReceive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "lzSend", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setConfig", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setReceiveVersion", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setSendVersion", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateGovernance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateLzRemoteAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateLzSenderPoolAuthorization", data: BytesLike): Result; } export declare namespace LzMessageFailEvent { type InputTuple = [ srcChainId: BigNumberish, srcPool: AddressLike, dstPool: AddressLike, trader: AddressLike, quoteToken: AddressLike, quoteTokenAmount: BigNumberish, txid: BytesLike, reason: BigNumberish ]; type OutputTuple = [ srcChainId: bigint, srcPool: string, dstPool: string, trader: string, quoteToken: string, quoteTokenAmount: bigint, txid: string, reason: bigint ]; interface OutputObject { srcChainId: bigint; srcPool: string; dstPool: string; trader: string; quoteToken: string; quoteTokenAmount: bigint; txid: string; reason: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LzMessageSuccessEvent { type InputTuple = [ srcChainId: BigNumberish, srcPool: AddressLike, dstPool: AddressLike, txid: BytesLike ]; type OutputTuple = [ srcChainId: bigint, srcPool: string, dstPool: string, txid: string ]; interface OutputObject { srcChainId: bigint; srcPool: string; dstPool: string; txid: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LzMessageUnauthorizedEvent { type InputTuple = [srcChainId: BigNumberish, srcAddress: BytesLike]; type OutputTuple = [srcChainId: bigint, srcAddress: string]; interface OutputObject { srcChainId: bigint; srcAddress: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LzPoolAuthorizationChangedEvent { type InputTuple = [ dstPool: AddressLike, srcChainId: BigNumberish, srcPool: AddressLike, status: boolean ]; type OutputTuple = [ dstPool: string, srcChainId: bigint, srcPool: string, status: boolean ]; interface OutputObject { dstPool: string; srcChainId: bigint; srcPool: string; status: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LzRemoteAddressChangedEvent { type InputTuple = [chainId: BigNumberish, remoteAddress: BytesLike]; type OutputTuple = [chainId: bigint, remoteAddress: string]; interface OutputObject { chainId: bigint; remoteAddress: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateGovernanceEvent { type InputTuple = [ governance: AddressLike, prevGovernance: AddressLike ]; type OutputTuple = [governance: string, prevGovernance: string]; interface OutputObject { governance: string; prevGovernance: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IHashflowLayerZeroUA extends BaseContract { connect(runner?: ContractRunner | null): IHashflowLayerZeroUA; waitForDeployment(): Promise; interface: IHashflowLayerZeroUAInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; forceResumeReceive: TypedContractMethod<[ _srcChainId: BigNumberish, _srcAddress: BytesLike ], [ void ], "nonpayable">; getGovernance: TypedContractMethod<[], [string], "view">; getLzRemoteAddress: TypedContractMethod<[ chainId: BigNumberish ], [ string ], "view">; getLzSenderPoolAuthorization: TypedContractMethod<[ dstPool: AddressLike, srcChainId: BigNumberish, srcPool: AddressLike ], [ boolean ], "view">; lzReceive: TypedContractMethod<[ _srcChainId: BigNumberish, _srcAddress: BytesLike, _nonce: BigNumberish, _payload: BytesLike ], [ void ], "nonpayable">; lzSend: TypedContractMethod<[ quote: IQuote.LzQuoteStruct, relayer: AddressLike, signer: AddressLike, domainSeparator: BytesLike ], [ void ], "payable">; setConfig: TypedContractMethod<[ _version: BigNumberish, _chainId: BigNumberish, _configType: BigNumberish, _config: BytesLike ], [ void ], "nonpayable">; setReceiveVersion: TypedContractMethod<[ _version: BigNumberish ], [ void ], "nonpayable">; setSendVersion: TypedContractMethod<[ _version: BigNumberish ], [ void ], "nonpayable">; updateGovernance: TypedContractMethod<[ governance: AddressLike ], [ void ], "nonpayable">; updateLzRemoteAddress: TypedContractMethod<[ chainId: BigNumberish, remoteAddress: BytesLike ], [ void ], "nonpayable">; updateLzSenderPoolAuthorization: TypedContractMethod<[ srcChainId: BigNumberish, pool: AddressLike, status: boolean ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "forceResumeReceive"): TypedContractMethod<[ _srcChainId: BigNumberish, _srcAddress: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getGovernance"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getLzRemoteAddress"): TypedContractMethod<[chainId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "getLzSenderPoolAuthorization"): TypedContractMethod<[ dstPool: AddressLike, srcChainId: BigNumberish, srcPool: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "lzReceive"): TypedContractMethod<[ _srcChainId: BigNumberish, _srcAddress: BytesLike, _nonce: BigNumberish, _payload: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "lzSend"): TypedContractMethod<[ quote: IQuote.LzQuoteStruct, relayer: AddressLike, signer: AddressLike, domainSeparator: BytesLike ], [ void ], "payable">; getFunction(nameOrSignature: "setConfig"): TypedContractMethod<[ _version: BigNumberish, _chainId: BigNumberish, _configType: BigNumberish, _config: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setReceiveVersion"): TypedContractMethod<[_version: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "setSendVersion"): TypedContractMethod<[_version: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "updateGovernance"): TypedContractMethod<[governance: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updateLzRemoteAddress"): TypedContractMethod<[ chainId: BigNumberish, remoteAddress: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateLzSenderPoolAuthorization"): TypedContractMethod<[ srcChainId: BigNumberish, pool: AddressLike, status: boolean ], [ void ], "nonpayable">; getEvent(key: "LzMessageFail"): TypedContractEvent; getEvent(key: "LzMessageSuccess"): TypedContractEvent; getEvent(key: "LzMessageUnauthorized"): TypedContractEvent; getEvent(key: "LzPoolAuthorizationChanged"): TypedContractEvent; getEvent(key: "LzRemoteAddressChanged"): TypedContractEvent; getEvent(key: "UpdateGovernance"): TypedContractEvent; filters: { "LzMessageFail(uint16,address,address,address,address,uint256,bytes32,uint8)": TypedContractEvent; LzMessageFail: TypedContractEvent; "LzMessageSuccess(uint16,address,address,bytes32)": TypedContractEvent; LzMessageSuccess: TypedContractEvent; "LzMessageUnauthorized(uint16,bytes)": TypedContractEvent; LzMessageUnauthorized: TypedContractEvent; "LzPoolAuthorizationChanged(address,uint16,address,bool)": TypedContractEvent; LzPoolAuthorizationChanged: TypedContractEvent; "LzRemoteAddressChanged(uint16,bytes)": TypedContractEvent; LzRemoteAddressChanged: TypedContractEvent; "UpdateGovernance(address,address)": TypedContractEvent; UpdateGovernance: TypedContractEvent; }; }