import type { CaptureModule } from './shared/Types'; import type { SdkError } from './shared/Error'; import type { Event } from './shared/EventEmitter'; import type { CompleteData } from './shared/SdkParameters'; export type ModuleEvent = { module: CaptureModule; id: string; name: string; } & Event; export type ModuleStartEvent = ModuleEvent<'moduleStart'>; export type ModuleCompleteEvent = ModuleEvent<'moduleComplete'>; export type CompleteEvent = { data: CompleteData; } & Event<'complete'>; export type UserAnalyticsEvent = Event<'userAnalytics'> & { eventName: string; properties: Record; isCrossDevice: boolean; }; export type ErrorEvent = { error: SdkError | Error | unknown; } & Event<'error'>; export type PermissionUnknownEvent = Event<'permissionUnknown'> & { permissionsRequired: string[]; }; export type CaptureRunEvents = { complete: CompleteEvent; error: ErrorEvent; moduleStart: ModuleStartEvent; moduleComplete: ModuleCompleteEvent; userAnalytics: UserAnalyticsEvent; permissionUnknown: PermissionUnknownEvent; };