import type { BaseEventMessage } from '../messages/ViewedMessage'; export type BaseEvent = BaseEventMessage; export type CloudEventBaseData = Omit; export type MapToCloudEventBaseOptions = Omit; import type { ViewedMessage } from '../messages/ViewedMessage'; import type { PerformanceMetricsMessage } from '../messages/PerformanceMetricsMessage'; import type { DownloadDefinitionClickedMessage } from '../messages/DownloadDefinitionClickedMessage'; import type { CopyCodeSnippetClickedMessage } from '../messages/CopyCodeSnippetClickedMessage'; import type { ReferencedInClickedMessage } from '../messages/ReferencedInClickedMessage'; import type { SelectLanguageClickedMessage } from '../messages/SelectLanguageClickedMessage'; import type { ExpandCollapseAllClickedMessage } from '../messages/ExpandCollapseAllClickedMessage'; import type { ExamplesSwitcherClickedMessage } from '../messages/ExamplesSwitcherClickedMessage'; import type { SwitchServersClickedMessage } from '../messages/SwitchServersClickedMessage'; import type { TryItOpenedMessage } from '../messages/TryItOpenedMessage'; import type { ChangeLayoutClickedMessage } from '../messages/ChangeLayoutClickedMessage'; import type { ViewSecurityDetailsClickedMessage } from '../messages/ViewSecurityDetailsClickedMessage'; import type { ViewSecurityDetailsClosedMessage } from '../messages/ViewSecurityDetailsClosedMessage'; import type { SearchOpenedMessage } from '../messages/SearchOpenedMessage'; import type { SearchResultClickedMessage } from '../messages/SearchResultClickedMessage'; import type { SearchInputResetClickedMessage } from '../messages/SearchInputResetClickedMessage'; import type { SwitchMessageClickedMessage } from '../messages/SwitchMessageClickedMessage'; import type { SwitchExampleClickedMessage } from '../messages/SwitchExampleClickedMessage'; import type { MessageClickedMessage } from '../messages/MessageClickedMessage'; import type { ServerModalOpenedMessage } from '../messages/ServerModalOpenedMessage'; import type { RequiredScopesModalOpenedMessage } from '../messages/RequiredScopesModalOpenedMessage'; import type { InitialMessage } from '../messages/InitialMessage'; import type { ErrorMessage } from '../messages/ErrorMessage'; export type AllMessages = ViewedMessage | PerformanceMetricsMessage | DownloadDefinitionClickedMessage | CopyCodeSnippetClickedMessage | ReferencedInClickedMessage | SelectLanguageClickedMessage | ExpandCollapseAllClickedMessage | ExamplesSwitcherClickedMessage | SwitchServersClickedMessage | TryItOpenedMessage | ChangeLayoutClickedMessage | ViewSecurityDetailsClickedMessage | ViewSecurityDetailsClosedMessage | SearchOpenedMessage | SearchResultClickedMessage | SearchInputResetClickedMessage | SwitchMessageClickedMessage | SwitchExampleClickedMessage | MessageClickedMessage | ServerModalOpenedMessage | RequiredScopesModalOpenedMessage | InitialMessage | ErrorMessage; type MessageType = T extends { type: infer U; } ? U : never; export type EventType = MessageType; type ExtractData = T extends { data: infer D; } ? D : undefined; type MessageDataMap = { [K in EventType]: ExtractData>; }; export type EventPayload = MessageDataMap[TEventType]; export type GetEventData = EventPayload; export interface CloudEvent extends CloudEventMapperResult { data?: EventPayload; } /** Actor per cloudevent-structure.md: id, object, uri. */ export interface CloudEventActor { id?: string | null; object: string; uri: string | null; } export interface CloudEventDataItem { id?: string | null; object?: string | null; uri: string; [key: string]: unknown; } /** * Base CloudEvent structure. Template adds CloudEvent extends CloudEventMapperResult. * Must be standalone (not alias of CloudEvent) to avoid recursive type error. */ export interface CloudEventMapperResult { id: string; specversion: string; object: string; datacontenttype: string; type: string; time: string | Date; origin: string; env?: string; category?: 'product' | 'system'; signal?: 'log' | 'trace' | 'metric'; source?: string; subject?: string; subjects?: CloudEventActor[]; /** API: CloudEventDataItem[]. UI: Record. CloudEvent narrows to EventPayload. */ data?: unknown; actor?: CloudEventActor | null; requestId?: string; clientIp?: string; organizationId?: string; organizationSlug?: string; projectId?: string; projectSlug?: string; osPlatform?: string; userAgent?: string; sessionId?: string; [key: string]: unknown; } /** Standard CloudEvent keys (handled by base mapper). Used to identify extension attributes. */ export declare const CLOUD_EVENT_STANDARD_KEYS: readonly (keyof CloudEventMapperResult)[]; export type CloudEventMapperActor = CloudEventActor; export type CloudEventMapperDataItem = CloudEventDataItem; export type CloudEventMapperSubjectsArray = CloudEventActor[]; export type CloudEventSubject = CloudEventActor; export type MapToCloudEventOptions = Pick & { origin: string; source?: string; namespace?: string; }; /** * Unified CloudEvent mapper. * Handles both API-side (event-bus) and UI-side (telemetry client) mappings. */ export declare function mapToCloudEvent(options: Omit & { type: T; data?: EventPayload; }): CloudEvent; export {};