import type * as abitype from 'abitype'; import type * as Filter from '../Filter.js'; import type * as Hex from '../Hex.js'; import type * as AbiItem_internal from './abiItem.js'; import type { Compute, Filter as Filter_internal, MaybeRequired, TypeErrorMessage, UnionToIntersection } from './types.js'; /** @internal */ export type EventParameterOptions = { EnableUnion?: boolean; IndexedOnly?: boolean; Required?: boolean; }; /** @internal */ export type DefaultEventParameterOptions = { EnableUnion: true; IndexedOnly: true; Required: false; }; /** @internal */ export type IsSignature = (AbiItem_internal.IsEventSignature extends true ? true : never) | (AbiItem_internal.IsStructSignature extends true ? true : never) extends infer condition ? [condition] extends [never] ? false : true : false; /** @internal */ export type Signature = IsSignature extends true ? signature : string extends signature ? signature : TypeErrorMessage<`Signature "${signature}" is invalid${key extends string ? ` at position ${key}` : ''}.`>; /** @internal */ export type Signatures = { [key in keyof signatures]: Signature; }; /** @internal */ export type ParametersToPrimitiveTypes = abiParameters extends readonly [] ? readonly [] : Filter_internal extends infer Filtered extends readonly abitype.AbiParameter[] ? Filtered extends readonly [] ? readonly [] : HasNamedAbiParameter extends true ? UnionToIntersection<{ [index in keyof Filtered]: Filtered[index] extends { name: infer name extends string; } ? { [key in name]?: ParameterToPrimitiveType | undefined; } : { [key in index]?: ParameterToPrimitiveType | undefined; }; }[number]> extends infer Mapped ? Compute> : never : readonly [ ...{ [K in keyof Filtered]: ParameterToPrimitiveType; } ] | (options['Required'] extends true ? never : Filtered extends readonly [ ...infer Head extends readonly abitype.AbiParameter[], infer _ ] ? ParametersToPrimitiveTypes; } ], options> : never) : never; /** @internal */ export type ParameterToPrimitiveType> = options['EnableUnion'] extends true ? TopicType<_type> : _type; /** @internal */ export type TopicType = topic extends Hex.Hex ? primitiveType : topic extends readonly Hex.Hex[] ? primitiveType[] : topic extends null ? null : never; /** @internal */ export type HasNamedAbiParameter = abiParameters extends readonly [ infer Head extends abitype.AbiParameter, ...infer Tail extends readonly abitype.AbiParameter[] ] ? Head extends { name: string; } ? Head['name'] extends '' ? HasNamedAbiParameter : true : HasNamedAbiParameter : false; //# sourceMappingURL=abiEvent.d.ts.map