/** * Interface describing a custom event containing payload. */ export interface IOdinEvent extends Event { /** * Custom payload of the event (see `IOdin*Payload` interfaces). */ readonly payload: T; } /** * Custom Event providing Odin Event Payload of a provided type. */ export declare class OdinEvent extends Event implements IOdinEvent { readonly payload: T; constructor(type: string, payload: T); } /** * A generic event target class designed for strongly-typed event handling. * OdinEventTarget extends the functionality of the standard EventTarget to allow * interactions with predefined event types and handlers. * * @template Events The mapping of event type names to handler callback signatures. */ export declare class OdinEventTarget { private _eventTarget; addEventListener(eventName: OdinEventType, handler: Events[OdinEventType], options?: boolean | AddEventListenerOptions): void; dispatchEvent>(event: T): void; removeEventListener(type: OdinEventType | string, callback: EventListenerOrEventListenerObject | null | Events[OdinEventType]): void; }