import { type Authenticatable } from "../interfaces/authenticatable.interface"; import { type AuthProvider } from "../types/auth-provider"; /** * Emitted after successful registration. * * @example * ```typescript * @OnEvent('garmr.registered') * async handleRegistered(event: GarmrRegisteredEvent) { * await this.emailService.sendWelcome(event.entity.email) * console.log(`Registered via ${event.provider}`) * } * ``` * * @important Listeners should handle their own errors. * Unhandled errors will result in unhandled promise rejections. */ export declare class GarmrRegisteredEvent { readonly entity: T; readonly provider: AuthProvider; static readonly EVENT_NAME = "garmr.registered"; /** * @param entity - The newly registered entity * @param provider - The authentication provider that triggered registration (defaults to "magic-link") */ constructor(entity: T, provider?: AuthProvider); }