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 WormholeStructs { type GuardianSetStruct = { keys: AddressLike[]; expirationTime: BigNumberish; }; type GuardianSetStructOutput = [ keys: string[], expirationTime: bigint ] & { keys: string[]; expirationTime: bigint; }; type SignatureStruct = { r: BytesLike; s: BytesLike; v: BigNumberish; guardianIndex: BigNumberish; }; type SignatureStructOutput = [ r: string, s: string, v: bigint, guardianIndex: bigint ] & { r: string; s: string; v: bigint; guardianIndex: bigint; }; type VMStruct = { version: BigNumberish; timestamp: BigNumberish; nonce: BigNumberish; emitterChainId: BigNumberish; emitterAddress: BytesLike; sequence: BigNumberish; consistencyLevel: BigNumberish; payload: BytesLike; guardianSetIndex: BigNumberish; signatures: WormholeStructs.SignatureStruct[]; hash: BytesLike; }; type VMStructOutput = [ version: bigint, timestamp: bigint, nonce: bigint, emitterChainId: bigint, emitterAddress: string, sequence: bigint, consistencyLevel: bigint, payload: string, guardianSetIndex: bigint, signatures: WormholeStructs.SignatureStructOutput[], hash: string ] & { version: bigint; timestamp: bigint; nonce: bigint; emitterChainId: bigint; emitterAddress: string; sequence: bigint; consistencyLevel: bigint; payload: string; guardianSetIndex: bigint; signatures: WormholeStructs.SignatureStructOutput[]; hash: string; }; } export interface IWormholeInterface extends Interface { getFunction(nameOrSignature: "chainId" | "getCurrentGuardianSetIndex" | "getGuardianSet" | "getGuardianSetExpiry" | "governanceActionIsConsumed" | "governanceChainId" | "governanceContract" | "isInitialized" | "messageFee" | "parseAndVerifyVM" | "parseVM" | "publishMessage" | "verifySignatures" | "verifyVM"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "LogMessagePublished"): EventFragment; encodeFunctionData(functionFragment: "chainId", values?: undefined): string; encodeFunctionData(functionFragment: "getCurrentGuardianSetIndex", values?: undefined): string; encodeFunctionData(functionFragment: "getGuardianSet", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getGuardianSetExpiry", values?: undefined): string; encodeFunctionData(functionFragment: "governanceActionIsConsumed", values: [BytesLike]): string; encodeFunctionData(functionFragment: "governanceChainId", values?: undefined): string; encodeFunctionData(functionFragment: "governanceContract", values?: undefined): string; encodeFunctionData(functionFragment: "isInitialized", values: [AddressLike]): string; encodeFunctionData(functionFragment: "messageFee", values?: undefined): string; encodeFunctionData(functionFragment: "parseAndVerifyVM", values: [BytesLike]): string; encodeFunctionData(functionFragment: "parseVM", values: [BytesLike]): string; encodeFunctionData(functionFragment: "publishMessage", values: [BigNumberish, BytesLike, BigNumberish]): string; encodeFunctionData(functionFragment: "verifySignatures", values: [ BytesLike, WormholeStructs.SignatureStruct[], WormholeStructs.GuardianSetStruct ]): string; encodeFunctionData(functionFragment: "verifyVM", values: [WormholeStructs.VMStruct]): string; decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCurrentGuardianSetIndex", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getGuardianSet", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getGuardianSetExpiry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "governanceActionIsConsumed", data: BytesLike): Result; decodeFunctionResult(functionFragment: "governanceChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "governanceContract", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isInitialized", data: BytesLike): Result; decodeFunctionResult(functionFragment: "messageFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "parseAndVerifyVM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "parseVM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "publishMessage", data: BytesLike): Result; decodeFunctionResult(functionFragment: "verifySignatures", data: BytesLike): Result; decodeFunctionResult(functionFragment: "verifyVM", data: BytesLike): Result; } export declare namespace LogMessagePublishedEvent { type InputTuple = [ sender: AddressLike, sequence: BigNumberish, nonce: BigNumberish, payload: BytesLike, consistencyLevel: BigNumberish ]; type OutputTuple = [ sender: string, sequence: bigint, nonce: bigint, payload: string, consistencyLevel: bigint ]; interface OutputObject { sender: string; sequence: bigint; nonce: bigint; payload: string; consistencyLevel: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IWormhole extends BaseContract { connect(runner?: ContractRunner | null): IWormhole; waitForDeployment(): Promise; interface: IWormholeInterface; 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; chainId: TypedContractMethod<[], [bigint], "view">; getCurrentGuardianSetIndex: TypedContractMethod<[], [bigint], "view">; getGuardianSet: TypedContractMethod<[ index: BigNumberish ], [ WormholeStructs.GuardianSetStructOutput ], "view">; getGuardianSetExpiry: TypedContractMethod<[], [bigint], "view">; governanceActionIsConsumed: TypedContractMethod<[ hash: BytesLike ], [ boolean ], "view">; governanceChainId: TypedContractMethod<[], [bigint], "view">; governanceContract: TypedContractMethod<[], [string], "view">; isInitialized: TypedContractMethod<[impl: AddressLike], [boolean], "view">; messageFee: TypedContractMethod<[], [bigint], "view">; parseAndVerifyVM: TypedContractMethod<[ encodedVM: BytesLike ], [ [ WormholeStructs.VMStructOutput, boolean, string ] & { vm: WormholeStructs.VMStructOutput; valid: boolean; reason: string; } ], "view">; parseVM: TypedContractMethod<[ encodedVM: BytesLike ], [ WormholeStructs.VMStructOutput ], "view">; publishMessage: TypedContractMethod<[ nonce: BigNumberish, payload: BytesLike, consistencyLevel: BigNumberish ], [ bigint ], "payable">; verifySignatures: TypedContractMethod<[ hash: BytesLike, signatures: WormholeStructs.SignatureStruct[], guardianSet: WormholeStructs.GuardianSetStruct ], [ [boolean, string] & { valid: boolean; reason: string; } ], "view">; verifyVM: TypedContractMethod<[ vm: WormholeStructs.VMStruct ], [ [boolean, string] & { valid: boolean; reason: string; } ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "chainId"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getCurrentGuardianSetIndex"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getGuardianSet"): TypedContractMethod<[ index: BigNumberish ], [ WormholeStructs.GuardianSetStructOutput ], "view">; getFunction(nameOrSignature: "getGuardianSetExpiry"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "governanceActionIsConsumed"): TypedContractMethod<[hash: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "governanceChainId"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "governanceContract"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "isInitialized"): TypedContractMethod<[impl: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "messageFee"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "parseAndVerifyVM"): TypedContractMethod<[ encodedVM: BytesLike ], [ [ WormholeStructs.VMStructOutput, boolean, string ] & { vm: WormholeStructs.VMStructOutput; valid: boolean; reason: string; } ], "view">; getFunction(nameOrSignature: "parseVM"): TypedContractMethod<[ encodedVM: BytesLike ], [ WormholeStructs.VMStructOutput ], "view">; getFunction(nameOrSignature: "publishMessage"): TypedContractMethod<[ nonce: BigNumberish, payload: BytesLike, consistencyLevel: BigNumberish ], [ bigint ], "payable">; getFunction(nameOrSignature: "verifySignatures"): TypedContractMethod<[ hash: BytesLike, signatures: WormholeStructs.SignatureStruct[], guardianSet: WormholeStructs.GuardianSetStruct ], [ [boolean, string] & { valid: boolean; reason: string; } ], "view">; getFunction(nameOrSignature: "verifyVM"): TypedContractMethod<[ vm: WormholeStructs.VMStruct ], [ [boolean, string] & { valid: boolean; reason: string; } ], "view">; getEvent(key: "LogMessagePublished"): TypedContractEvent; filters: { "LogMessagePublished(address,uint64,uint32,bytes,uint8)": TypedContractEvent; LogMessagePublished: TypedContractEvent; }; }