import type { Abi } from 'abitype'; import { type AbiDecodingDataSizeTooSmallErrorType, type AbiEventSignatureEmptyTopicsErrorType, type AbiEventSignatureNotFoundErrorType, type DecodeLogDataMismatchErrorType, type DecodeLogTopicsMismatchErrorType } from '../errors/abi.js'; import type { ErrorType } from '../errors/utils.js'; import { type ToEventSelectorErrorType } from '../hash/toEventSelector.js'; import type { ContractEventArgsFromTopics, ContractEventName } from '../types/contract.js'; import type { Hex } from '../types/data.js'; import type { IsNarrowable, Prettify, UnionEvaluate } from '../types/utils.js'; import { type DecodeAbiParametersErrorType } from './decode.js'; import { type FormatAbiItemErrorType } from './format.js'; export type DecodeLogParameters | undefined = ContractEventName, topics extends Hex[] = Hex[], data extends Hex | undefined = undefined, strict extends boolean = true> = { abi: abi; data?: data | undefined; eventName?: eventName | ContractEventName | undefined; strict?: strict | boolean | undefined; topics: [signature: Hex, ...args: topics] | []; }; export type DecodeLogReturnType | undefined = ContractEventName, topics extends Hex[] = Hex[], data extends Hex | undefined = undefined, strict extends boolean = true, allEventNames extends ContractEventName = eventName extends ContractEventName ? eventName : ContractEventName> = IsNarrowable extends true ? { [name in allEventNames]: Prettify<{ eventName: name; } & UnionEvaluate extends infer allArgs ? topics extends readonly [] ? data extends undefined ? { args?: undefined; } : { args?: allArgs | undefined; } : { args: allArgs; } : never>>; }[allEventNames] : { eventName: eventName; args: readonly unknown[] | undefined; }; export type DecodeLogErrorType = AbiDecodingDataSizeTooSmallErrorType | AbiEventSignatureEmptyTopicsErrorType | AbiEventSignatureNotFoundErrorType | DecodeAbiParametersErrorType | DecodeLogTopicsMismatchErrorType | DecodeLogDataMismatchErrorType | FormatAbiItemErrorType | ToEventSelectorErrorType | ErrorType; export declare function decodeLog | undefined = undefined, topics extends Hex[] = Hex[], data extends Hex | undefined = undefined, strict extends boolean = true>(parameters: DecodeLogParameters): DecodeLogReturnType; //# sourceMappingURL=decodeLog.d.ts.map