import type { AbiParameter, AbiParameterToPrimitiveType } from "abitype"; import type * as ox__Hex from "ox/Hex"; import type { Log as ox__Log } from "ox/Log"; import type { Filter, MaybeRequired, Prettify } from "../utils/type-utils.js"; type EventParameterOptions = { EnableUnion?: boolean; IndexedOnly?: boolean; Required?: boolean; }; type DefaultEventParameterOptions = { EnableUnion: true; IndexedOnly: true; Required: false; }; export type AbiEventParametersToPrimitiveTypes = TAbiParameters extends readonly [] ? readonly [] : Filter extends infer Filtered extends readonly AbiParameter[] ? _HasUnnamedAbiParameter extends true ? readonly [ ...{ [K in keyof Filtered]: AbiEventParameterToPrimitiveType; } ] | (Options["Required"] extends true ? never : Filtered extends readonly [ ...infer Head extends readonly AbiParameter[], infer _ ] ? AbiEventParametersToPrimitiveTypes; }], Options> : never) : { [Parameter in Filtered[number] as Parameter extends { name: infer Name extends string; } ? Name : never]?: AbiEventParameterToPrimitiveType; } extends infer Mapped ? Prettify> : never : never; type _HasUnnamedAbiParameter = TAbiParameters extends readonly [ infer Head extends AbiParameter, ...infer Tail extends readonly AbiParameter[] ] ? Head extends { name: string; } ? Head["name"] extends "" ? true : _HasUnnamedAbiParameter : true : false; /** * @internal */ type LogTopicType = TTopic extends ox__Hex.Hex ? TPrimitiveType : TTopic extends ox__Hex.Hex[] ? TPrimitiveType[] : TTopic extends null ? null : never; /** * @internal */ type AbiEventParameterToPrimitiveType> = Options["EnableUnion"] extends true ? LogTopicType<_Type> : _Type; export {}; //# sourceMappingURL=types.d.ts.map