Types 
ESMitterEventName 
Represents the name of an event in ESMitter. This can be a string or a symbol:
typescript
const STRING_EVENT_NAME: ESMitterEventName = "dataReceived"; // <- most common usage
const SYMBOL_EVENT_NAME: ESMitterEventName = Symbol("dataReceived");ESMitterEvent 
Describes an event, its arguments, and context. To be used when extending the ESMitter class.
typescript
type SuccessEvent = ESMitterEvent<
  [{ foo: string; bar: string }], // <- arguments passed to the listener
  { source: string } // <- context for the listener
>;ESMitterEvents 
Defines a mapping of event names to their corresponding event handler signatures. Used for type-safe event registration and emission in ESMitter.
typescript
interface MyEvents extends ESMitterEvents {
  success: ESMitterEvent<[{ foo: string; bar: string }]>;
  error: ESMitterEvent<[number, string]>;
}
class MyClass extends ESMitter<MyEvents> {}