import type { IncomingHttpHeaders } from 'node:http'; import type { Component } from '../../types'; type Subscription = (data: T) => void; export interface RequestData { body: unknown; duration: number; headers: IncomingHttpHeaders; method: string; path: string; relativeUrl: string; query: Record; url: string; statusCode: number; errorDetails?: string; errorCode?: string; } type Events = { error: { code: string; message: string; }; start: unknown; 'cache-poll': number; request: RequestData; 'component-retrieved': { headers: IncomingHttpHeaders; name: string; parameters: IncomingHttpHeaders; requestVersion: string; duration: number; }; 'data-provider-error': { name: string; version: string; parameters: Record; requestVersion: string; status: number; error: Error; }; 'component-published': { componentName: string; componentVersion: string; packageJson: Component; componentFolder: string; user?: string; }; }; type EventsHandler = { fire(eventName: T, data: Events[T]): void; on(eventName: T, listener: Subscription): void; off(eventName: T, listener: Subscription): void; reset(): void; }; declare const eventsHandler: EventsHandler; export default eventsHandler;