import type { DISCARDED, Duration, HookNamesAsConst, RecursivePartial, RelativeTime, SKIPPED, TelemetryEvent } from '@openobserve/browser-core'; import type { RumEvent } from '../rumEvent.types'; export type DefaultRumEventAttributes = RecursivePartial & { type: RumEvent['type']; }; export type DefaultTelemetryEventAttributes = RecursivePartial; export interface HookCallbackMap { [HookNamesAsConst.ASSEMBLE]: (param: { eventType: RumEvent['type']; startTime: RelativeTime; duration?: Duration | undefined; }) => DefaultRumEventAttributes | SKIPPED | DISCARDED; [HookNamesAsConst.ASSEMBLE_TELEMETRY]: (param: { startTime: RelativeTime; }) => DefaultTelemetryEventAttributes | SKIPPED | DISCARDED; } export type Hooks = ReturnType; export declare const createHooks: () => { register(hookName: K, callback: HookCallbackMap[K]): { unregister: () => void; }; triggerHook(hookName: K, param: Parameters[0]): "DISCARDED" | Exclude, "SKIPPED"> | undefined; };