import type { Abi, GetEventArgs } from "viem"; import type { ParseAbiEvent, SafeEventNames } from "./utilityTypes.js"; type FilterArgs = GetEventArgs< abi, string, { EnableUnion: true; IndexedOnly: true; Required: false; }, ParseAbiEvent >; export type GetEventFilter< abi extends Abi, /// safeEventNames extends string = SafeEventNames, > = { filter?: | (safeEventNames extends safeEventNames ? { event: safeEventNames; args: FilterArgs; } : never) | (safeEventNames extends safeEventNames ? { event: safeEventNames; args: FilterArgs; } : never)[]; };