import { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from 'ethers'; import { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from './common'; export type OriginStruct = { srcEid: BigNumberish; sender: BytesLike; nonce: BigNumberish; }; export type OriginStructOutput = [ srcEid: bigint, sender: string, nonce: bigint ] & { srcEid: bigint; sender: string; nonce: bigint; }; export type UlnConfigStruct = { confirmations: BigNumberish; requiredDVNCount: BigNumberish; optionalDVNCount: BigNumberish; optionalDVNThreshold: BigNumberish; requiredDVNs: AddressLike[]; optionalDVNs: AddressLike[]; }; export type UlnConfigStructOutput = [ confirmations: bigint, requiredDVNCount: bigint, optionalDVNCount: bigint, optionalDVNThreshold: bigint, requiredDVNs: string[], optionalDVNs: string[] ] & { confirmations: bigint; requiredDVNCount: bigint; optionalDVNCount: bigint; optionalDVNThreshold: bigint; requiredDVNs: string[]; optionalDVNs: string[]; }; export interface LayerZeroInterface extends Interface { getFunction(nameOrSignature: "allowInitializePath" | "defaultGasLimit" | "eid" | "estimateFee" | "getDelegate" | "getGasLimit" | "getNativeSendCap" | "getPeer" | "getUlnConfig" | "isSupportedEid" | "lzReceive" | "nextNonce" | "owner" | "sendDeposit" | "setDefaultGasLimit" | "setDelegate" | "setGasLimit" | "setPeers" | "setUlnConfigs"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; encodeFunctionData(functionFragment: "allowInitializePath", values: [OriginStruct]): string; encodeFunctionData(functionFragment: "defaultGasLimit", values?: undefined): string; encodeFunctionData(functionFragment: "eid", values?: undefined): string; encodeFunctionData(functionFragment: "estimateFee", values: [BigNumberish, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "getDelegate", values?: undefined): string; encodeFunctionData(functionFragment: "getGasLimit", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getNativeSendCap", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getPeer", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getUlnConfig", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "isSupportedEid", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "lzReceive", values: [OriginStruct, BytesLike, BytesLike, AddressLike, BytesLike]): string; encodeFunctionData(functionFragment: "nextNonce", values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "sendDeposit", values: [BigNumberish, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "setDefaultGasLimit", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "setDelegate", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setGasLimit", values: [BigNumberish[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "setPeers", values: [BigNumberish[], BytesLike[]]): string; encodeFunctionData(functionFragment: "setUlnConfigs", values: [AddressLike, BigNumberish, BigNumberish[], AddressLike]): string; decodeFunctionResult(functionFragment: "allowInitializePath", data: BytesLike): Result; decodeFunctionResult(functionFragment: "defaultGasLimit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "eid", data: BytesLike): Result; decodeFunctionResult(functionFragment: "estimateFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDelegate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getGasLimit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getNativeSendCap", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPeer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUlnConfig", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isSupportedEid", data: BytesLike): Result; decodeFunctionResult(functionFragment: "lzReceive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "nextNonce", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "sendDeposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDefaultGasLimit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDelegate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setGasLimit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPeers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setUlnConfigs", data: BytesLike): Result; } export declare namespace OwnershipTransferredEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface LayerZero extends BaseContract { connect(runner?: ContractRunner | null): LayerZero; waitForDeployment(): Promise; interface: LayerZeroInterface; 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; allowInitializePath: TypedContractMethod<[ origin: OriginStruct ], [ boolean ], "view">; defaultGasLimit: TypedContractMethod<[], [bigint], "view">; eid: TypedContractMethod<[], [bigint], "view">; estimateFee: TypedContractMethod<[ dstEid: BigNumberish, nativeAmount: BigNumberish, to: AddressLike ], [ bigint ], "view">; getDelegate: TypedContractMethod<[], [string], "view">; getGasLimit: TypedContractMethod<[dstEid: BigNumberish], [bigint], "view">; getNativeSendCap: TypedContractMethod<[ remoteEid: BigNumberish ], [ bigint ], "view">; getPeer: TypedContractMethod<[dstEid: BigNumberish], [string], "view">; getUlnConfig: TypedContractMethod<[ lib: AddressLike, remoteEid: BigNumberish ], [ UlnConfigStructOutput ], "view">; isSupportedEid: TypedContractMethod<[ remoteEid: BigNumberish ], [ boolean ], "view">; lzReceive: TypedContractMethod<[ arg0: OriginStruct, arg1: BytesLike, arg2: BytesLike, arg3: AddressLike, arg4: BytesLike ], [ void ], "view">; nextNonce: TypedContractMethod<[ arg0: BigNumberish, arg1: BytesLike ], [ bigint ], "view">; owner: TypedContractMethod<[], [string], "view">; sendDeposit: TypedContractMethod<[ dstEid: BigNumberish, nativeDrop: BigNumberish, to: AddressLike ], [ void ], "payable">; setDefaultGasLimit: TypedContractMethod<[ defaultGasLimit_: BigNumberish ], [ void ], "nonpayable">; setDelegate: TypedContractMethod<[ delegate: AddressLike ], [ void ], "nonpayable">; setGasLimit: TypedContractMethod<[ remoteEids: BigNumberish[], gasLimits: BigNumberish[] ], [ void ], "nonpayable">; setPeers: TypedContractMethod<[ remoteEids: BigNumberish[], remoteAddresses: BytesLike[] ], [ void ], "nonpayable">; setUlnConfigs: TypedContractMethod<[ lib: AddressLike, confirmations: BigNumberish, eids: BigNumberish[], dvn: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "allowInitializePath"): TypedContractMethod<[origin: OriginStruct], [boolean], "view">; getFunction(nameOrSignature: "defaultGasLimit"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "eid"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "estimateFee"): TypedContractMethod<[ dstEid: BigNumberish, nativeAmount: BigNumberish, to: AddressLike ], [ bigint ], "view">; getFunction(nameOrSignature: "getDelegate"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getGasLimit"): TypedContractMethod<[dstEid: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "getNativeSendCap"): TypedContractMethod<[remoteEid: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "getPeer"): TypedContractMethod<[dstEid: BigNumberish], [string], "view">; getFunction(nameOrSignature: "getUlnConfig"): TypedContractMethod<[ lib: AddressLike, remoteEid: BigNumberish ], [ UlnConfigStructOutput ], "view">; getFunction(nameOrSignature: "isSupportedEid"): TypedContractMethod<[remoteEid: BigNumberish], [boolean], "view">; getFunction(nameOrSignature: "lzReceive"): TypedContractMethod<[ arg0: OriginStruct, arg1: BytesLike, arg2: BytesLike, arg3: AddressLike, arg4: BytesLike ], [ void ], "view">; getFunction(nameOrSignature: "nextNonce"): TypedContractMethod<[ arg0: BigNumberish, arg1: BytesLike ], [ bigint ], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "sendDeposit"): TypedContractMethod<[ dstEid: BigNumberish, nativeDrop: BigNumberish, to: AddressLike ], [ void ], "payable">; getFunction(nameOrSignature: "setDefaultGasLimit"): TypedContractMethod<[ defaultGasLimit_: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setDelegate"): TypedContractMethod<[delegate: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setGasLimit"): TypedContractMethod<[ remoteEids: BigNumberish[], gasLimits: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPeers"): TypedContractMethod<[ remoteEids: BigNumberish[], remoteAddresses: BytesLike[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setUlnConfigs"): TypedContractMethod<[ lib: AddressLike, confirmations: BigNumberish, eids: BigNumberish[], dvn: AddressLike ], [ void ], "nonpayable">; getEvent(key: "OwnershipTransferred"): TypedContractEvent; filters: { "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; }; }