import 'reflect-metadata'; import type { IEvent } from '../interfaces'; import type { NonFunctionPropertyNames, PublicProperties } from '../types'; export declare abstract class Event<_TEvent extends object> implements IEvent { /** * @deprecated Use `create` method instead. */ constructor(); static create>(this: new () => TEvent, props?: PublicProperties): TEvent; } export declare abstract class ValidatedEvent extends Event { static create>(this: new () => T, ...args: NonFunctionPropertyNames extends never ? [] : [props: PublicProperties]): T; }