primeorbit 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Wraps a synchronous function and logs its execution latency.
3
+ *
4
+ * @param fn - The synchronous function to be wrapped.
5
+ * @param agentId - Identifier for the agent.
6
+ * @param actionId - Identifier for the action. Defaults to the function name.
7
+ * @returns A wrapped function that logs latency and returns the same result.
8
+ */
9
+ declare function wrapSyncToRecordLatency<TArgs extends unknown[], TResult>(fn: (...args: TArgs) => TResult, agentId: string, actionId?: string): (...args: TArgs) => TResult;
10
+ /**
11
+ * Wraps an asynchronous function and logs its execution latency.
12
+ *
13
+ * @param fn - The asynchronous function to be wrapped.
14
+ * @param agentId - Identifier for the agent.
15
+ * @param actionId - Identifier for the action. Defaults to the function name.
16
+ * @returns A wrapped function that logs latency and returns the same Promise.
17
+ */
18
+ declare function wrapAsyncToRecordLatency<TArgs extends unknown[], TResult>(fn: (...args: TArgs) => Promise<TResult>, agentId: string, actionId?: string): (...args: TArgs) => Promise<TResult>;
19
+ /**
20
+ * Wraps a synchronous or asynchronous function and logs its execution latency.
21
+ *
22
+ * @template TArgs - The argument types of the function.
23
+ * @template TResult - The return type of the function.
24
+ * @param fn - The function to be wrapped.
25
+ * @param agentId - Identifier for the agent.
26
+ * @param actionId - Identifier for the action. Defaults to the function name.
27
+ * @returns A wrapped function that logs latency and returns the same result.
28
+ *
29
+ * @example
30
+ * // Wrap a sync function
31
+ * const wrappedSync = wrapToRecordLatency(myFunction, 'agent-1');
32
+ *
33
+ * // Wrap an async function
34
+ * const wrappedAsync = wrapToRecordLatency(myAsyncFunction, 'agent-1', 'custom-action');
35
+ */
36
+ declare function wrapToRecordLatency<TArgs extends unknown[], TResult>(fn: (...args: TArgs) => TResult | Promise<TResult>, agentId: string, actionId?: string): (...args: TArgs) => TResult | Promise<TResult>;
37
+
38
+ declare function setPrimeOrbitApiUrl(url: string): void;
39
+ declare function getPrimeOrbitApiUrl(): string;
40
+
41
+ /**
42
+ * Records a star rating for an agent after task completion.
43
+ *
44
+ * @param agentId - Unique identifier for the agent
45
+ * @param rating - Star rating given (e.g. 1–5)
46
+ * @param taskName - Name of completed task
47
+ * @param userId - Optional ID of the user giving the rating
48
+ */
49
+ declare function record_star_rating(agentId: string, rating: number, taskName: string, userId?: string): Promise<void>;
50
+
51
+ /**
52
+ * Sends thumbs-up/down feedback to the backend.
53
+ *
54
+ * @param agentId - ID of the agent being rated
55
+ * @param isThumbsUp - true if thumbs up, false if thumbs down
56
+ * @param taskName - summary of the task
57
+ * @param userId - ID of the user who provided the feedback; defaults to ''.
58
+ */
59
+ declare function record_thumbs_feedback(agentId: string, isThumbsUp: boolean, taskName: string, userId?: string): Promise<void>;
60
+
61
+ /**
62
+ * EventQueue - Handles batching, rate limiting, and retry logic for event recording.
63
+ *
64
+ * This queue buffers events and sends them in batches to reduce HTTP overhead
65
+ * and prevent socket exhaustion in high-throughput scenarios.
66
+ */
67
+ interface EventQueueOptions {
68
+ /** Maximum number of events to batch in a single request (default: 100) */
69
+ batchSize?: number;
70
+ /** Maximum time in ms to wait before flushing a partial batch (default: 5000) */
71
+ flushIntervalMs?: number;
72
+ /** Maximum number of concurrent HTTP requests (default: 5) */
73
+ maxConcurrentRequests?: number;
74
+ /** Maximum number of retry attempts for failed requests (default: 3) */
75
+ maxRetries?: number;
76
+ /** Base delay in ms for exponential backoff (default: 1000) */
77
+ retryBaseDelayMs?: number;
78
+ /** Maximum queue size before dropping events (default: 100000) */
79
+ maxQueueSize?: number;
80
+ /** Callback for when events are dropped due to queue overflow */
81
+ onEventDropped?: (event: QueuedEvent, reason: string) => void;
82
+ /** Callback for when a batch fails after all retries */
83
+ onBatchFailed?: (events: QueuedEvent[], error: Error) => void;
84
+ /** Callback for when a batch succeeds */
85
+ onBatchSuccess?: (events: QueuedEvent[], response: unknown) => void;
86
+ }
87
+ interface QueuedEvent {
88
+ payload: Record<string, unknown>;
89
+ timestamp: number;
90
+ retryCount: number;
91
+ }
92
+ declare class EventQueue {
93
+ private queue;
94
+ private readonly batchSize;
95
+ private readonly flushIntervalMs;
96
+ private readonly maxConcurrentRequests;
97
+ private readonly maxRetries;
98
+ private readonly retryBaseDelayMs;
99
+ private readonly maxQueueSize;
100
+ private readonly onEventDropped;
101
+ private readonly onBatchFailed;
102
+ private readonly onBatchSuccess;
103
+ private flushTimer;
104
+ private activeBatches;
105
+ private isShuttingDown;
106
+ private isFlushing;
107
+ private readonly endpoint;
108
+ private readonly headers;
109
+ private readonly sendBatch;
110
+ constructor(endpoint: string, headers: Record<string, string>, options?: EventQueueOptions);
111
+ /**
112
+ * Add an event to the queue. Events are batched and sent automatically.
113
+ */
114
+ enqueue(payload: Record<string, unknown>): boolean;
115
+ /**
116
+ * Flush all pending events. Call this before your application exits.
117
+ */
118
+ flush(): Promise<void>;
119
+ /**
120
+ * Shutdown the queue gracefully. Flushes all pending events and stops the timer.
121
+ */
122
+ shutdown(): Promise<void>;
123
+ /**
124
+ * Get current queue statistics.
125
+ */
126
+ getStats(): {
127
+ queuedEvents: number;
128
+ activeBatches: number;
129
+ isShuttingDown: boolean;
130
+ };
131
+ private startFlushTimer;
132
+ private stopFlushTimer;
133
+ private cleanupCompletedBatches;
134
+ private processBatch;
135
+ private createBatchSender;
136
+ private sleep;
137
+ }
138
+
139
+ interface PrimeOrbitClientOptions {
140
+ /** Your PrimeOrbit API key */
141
+ apiKey?: string;
142
+ /** Custom endpoint URL */
143
+ endpoint?: string;
144
+ /** Enable verbose logging for missing optional fields */
145
+ verbose?: boolean;
146
+ /**
147
+ * Enable event batching for high-throughput scenarios.
148
+ * When enabled, events are queued and sent in batches instead of immediately.
149
+ * Default: false (for backward compatibility)
150
+ */
151
+ enableBatching?: boolean;
152
+ /** Options for the event queue (only used when enableBatching is true) */
153
+ queueOptions?: EventQueueOptions;
154
+ }
155
+ declare class PrimeOrbitClient {
156
+ private apiKey;
157
+ private baseUrl;
158
+ private baseProperties;
159
+ private verbose;
160
+ private enableBatching;
161
+ private eventQueue;
162
+ /**
163
+ * @param {string} apiKey - Your PrimeOrbit API key
164
+ * @param {string} [endpoint] - endpoint URL
165
+ * @deprecated Use the options object constructor instead for new features
166
+ */
167
+ constructor(apiKey?: string, endpoint?: string);
168
+ /**
169
+ * @param {PrimeOrbitClientOptions} options - Configuration options
170
+ */
171
+ constructor(options: PrimeOrbitClientOptions);
172
+ private initializeEventQueue;
173
+ add_properties(props: Record<string, unknown>): void;
174
+ _headers(): Record<string, string>;
175
+ /**
176
+ * Enable or disable event batching at runtime.
177
+ * When enabled, events are queued and sent in batches.
178
+ * When disabled, events are sent immediately (original behavior).
179
+ *
180
+ * @param enable - Whether to enable batching
181
+ * @param queueOptions - Optional queue configuration (only used when enabling)
182
+ */
183
+ setBatching(enable: boolean, queueOptions?: EventQueueOptions): void;
184
+ /**
185
+ * Flush all queued events immediately.
186
+ * Call this before your application exits to ensure all events are sent.
187
+ * Only applicable when batching is enabled.
188
+ */
189
+ flush(): Promise<void>;
190
+ /**
191
+ * Shutdown the client gracefully.
192
+ * Flushes all pending events and releases resources.
193
+ * Call this when your application is shutting down.
194
+ */
195
+ shutdown(): Promise<void>;
196
+ /**
197
+ * Get queue statistics.
198
+ * Only applicable when batching is enabled.
199
+ */
200
+ getQueueStats(): {
201
+ queuedEvents: number;
202
+ activeBatches: number;
203
+ isShuttingDown: boolean;
204
+ } | null;
205
+ /**
206
+ * Records any agent interaction event such as user_message, agent_response, or user_feedback.
207
+ *
208
+ * @param eventType - Type of event. Can be:
209
+ * - 'user_message' – when the user sends a message
210
+ * - 'agent_response' – when the agent replies
211
+ * - 'user_feedback' – when the user gives feedback
212
+ *
213
+ * @param params - Object containing event details:
214
+ * - conversationId: string – Unique conversation identifier
215
+ * - agentId: string – Agent ID
216
+ * - userId: string – User ID
217
+ * - productId?: string – Optional product ID
218
+ * - content: string – Text content of the event (user message, agent reply, or feedback)
219
+ * - sessionId?: string – Optional session ID
220
+ * - messageId?: string – Optional message ID (for tracking within conversation)
221
+ * - inputMode?: string – Optional input mode (e.g., 'text', 'voice')
222
+ * - device?: string – Optional device name or model (e.g., 'iPhone 13')
223
+ * - country?: string – Optional country of the user (ISO country code, e.g., 'US')
224
+ * - platform?: string – Optional platform or OS (e.g., 'iOS', 'Android', 'Web')
225
+ * - language?: string – Optional language of the user (e.g., 'en-US')
226
+ * - Any additional properties will be captured in additional_properties
227
+ *
228
+ * @returns Promise that resolves when the event is queued (batching) or sent (non-batching).
229
+ * When batching is enabled, returns true if queued successfully, false if dropped.
230
+ */
231
+ record_raw_event(eventType: 'user_message' | 'agent_response' | 'user_feedback', params: Record<string, unknown>): Promise<boolean | undefined>;
232
+ }
233
+
234
+ /**
235
+ * Logger module for PrimeOrbit SDK
236
+ *
237
+ * Provides configurable logging with different levels and formatting.
238
+ * All logs are prefixed with [PrimeOrbit] for easy filtering.
239
+ */
240
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
241
+ /**
242
+ * Sets the log level for the SDK.
243
+ * Messages below this level will not be logged.
244
+ *
245
+ * @param level - The minimum log level to display
246
+ */
247
+ declare function setLogLevel(level: LogLevel): void;
248
+ /**
249
+ * Gets the current log level.
250
+ *
251
+ * @returns The current log level
252
+ */
253
+ declare function getLogLevel(): LogLevel;
254
+ /**
255
+ * Logger instance with methods for each log level.
256
+ * Console usage is intentional here as this is the logging implementation.
257
+ */
258
+ declare const logger: {
259
+ /**
260
+ * Log a debug message. Only shown when log level is 'debug'.
261
+ */
262
+ debug(message: string, ...args: unknown[]): void;
263
+ /**
264
+ * Log an informational message.
265
+ */
266
+ info(message: string, ...args: unknown[]): void;
267
+ /**
268
+ * Log a warning message.
269
+ */
270
+ warn(message: string, ...args: unknown[]): void;
271
+ /**
272
+ * Log an error message.
273
+ */
274
+ error(message: string, ...args: unknown[]): void;
275
+ };
276
+
277
+ export { EventQueue, type EventQueueOptions, type LogLevel, PrimeOrbitClient, type PrimeOrbitClientOptions, type QueuedEvent, getLogLevel, getPrimeOrbitApiUrl, logger, record_star_rating, record_thumbs_feedback, setLogLevel, setPrimeOrbitApiUrl, wrapAsyncToRecordLatency, wrapSyncToRecordLatency, wrapToRecordLatency };
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Wraps a synchronous function and logs its execution latency.
3
+ *
4
+ * @param fn - The synchronous function to be wrapped.
5
+ * @param agentId - Identifier for the agent.
6
+ * @param actionId - Identifier for the action. Defaults to the function name.
7
+ * @returns A wrapped function that logs latency and returns the same result.
8
+ */
9
+ declare function wrapSyncToRecordLatency<TArgs extends unknown[], TResult>(fn: (...args: TArgs) => TResult, agentId: string, actionId?: string): (...args: TArgs) => TResult;
10
+ /**
11
+ * Wraps an asynchronous function and logs its execution latency.
12
+ *
13
+ * @param fn - The asynchronous function to be wrapped.
14
+ * @param agentId - Identifier for the agent.
15
+ * @param actionId - Identifier for the action. Defaults to the function name.
16
+ * @returns A wrapped function that logs latency and returns the same Promise.
17
+ */
18
+ declare function wrapAsyncToRecordLatency<TArgs extends unknown[], TResult>(fn: (...args: TArgs) => Promise<TResult>, agentId: string, actionId?: string): (...args: TArgs) => Promise<TResult>;
19
+ /**
20
+ * Wraps a synchronous or asynchronous function and logs its execution latency.
21
+ *
22
+ * @template TArgs - The argument types of the function.
23
+ * @template TResult - The return type of the function.
24
+ * @param fn - The function to be wrapped.
25
+ * @param agentId - Identifier for the agent.
26
+ * @param actionId - Identifier for the action. Defaults to the function name.
27
+ * @returns A wrapped function that logs latency and returns the same result.
28
+ *
29
+ * @example
30
+ * // Wrap a sync function
31
+ * const wrappedSync = wrapToRecordLatency(myFunction, 'agent-1');
32
+ *
33
+ * // Wrap an async function
34
+ * const wrappedAsync = wrapToRecordLatency(myAsyncFunction, 'agent-1', 'custom-action');
35
+ */
36
+ declare function wrapToRecordLatency<TArgs extends unknown[], TResult>(fn: (...args: TArgs) => TResult | Promise<TResult>, agentId: string, actionId?: string): (...args: TArgs) => TResult | Promise<TResult>;
37
+
38
+ declare function setPrimeOrbitApiUrl(url: string): void;
39
+ declare function getPrimeOrbitApiUrl(): string;
40
+
41
+ /**
42
+ * Records a star rating for an agent after task completion.
43
+ *
44
+ * @param agentId - Unique identifier for the agent
45
+ * @param rating - Star rating given (e.g. 1–5)
46
+ * @param taskName - Name of completed task
47
+ * @param userId - Optional ID of the user giving the rating
48
+ */
49
+ declare function record_star_rating(agentId: string, rating: number, taskName: string, userId?: string): Promise<void>;
50
+
51
+ /**
52
+ * Sends thumbs-up/down feedback to the backend.
53
+ *
54
+ * @param agentId - ID of the agent being rated
55
+ * @param isThumbsUp - true if thumbs up, false if thumbs down
56
+ * @param taskName - summary of the task
57
+ * @param userId - ID of the user who provided the feedback; defaults to ''.
58
+ */
59
+ declare function record_thumbs_feedback(agentId: string, isThumbsUp: boolean, taskName: string, userId?: string): Promise<void>;
60
+
61
+ /**
62
+ * EventQueue - Handles batching, rate limiting, and retry logic for event recording.
63
+ *
64
+ * This queue buffers events and sends them in batches to reduce HTTP overhead
65
+ * and prevent socket exhaustion in high-throughput scenarios.
66
+ */
67
+ interface EventQueueOptions {
68
+ /** Maximum number of events to batch in a single request (default: 100) */
69
+ batchSize?: number;
70
+ /** Maximum time in ms to wait before flushing a partial batch (default: 5000) */
71
+ flushIntervalMs?: number;
72
+ /** Maximum number of concurrent HTTP requests (default: 5) */
73
+ maxConcurrentRequests?: number;
74
+ /** Maximum number of retry attempts for failed requests (default: 3) */
75
+ maxRetries?: number;
76
+ /** Base delay in ms for exponential backoff (default: 1000) */
77
+ retryBaseDelayMs?: number;
78
+ /** Maximum queue size before dropping events (default: 100000) */
79
+ maxQueueSize?: number;
80
+ /** Callback for when events are dropped due to queue overflow */
81
+ onEventDropped?: (event: QueuedEvent, reason: string) => void;
82
+ /** Callback for when a batch fails after all retries */
83
+ onBatchFailed?: (events: QueuedEvent[], error: Error) => void;
84
+ /** Callback for when a batch succeeds */
85
+ onBatchSuccess?: (events: QueuedEvent[], response: unknown) => void;
86
+ }
87
+ interface QueuedEvent {
88
+ payload: Record<string, unknown>;
89
+ timestamp: number;
90
+ retryCount: number;
91
+ }
92
+ declare class EventQueue {
93
+ private queue;
94
+ private readonly batchSize;
95
+ private readonly flushIntervalMs;
96
+ private readonly maxConcurrentRequests;
97
+ private readonly maxRetries;
98
+ private readonly retryBaseDelayMs;
99
+ private readonly maxQueueSize;
100
+ private readonly onEventDropped;
101
+ private readonly onBatchFailed;
102
+ private readonly onBatchSuccess;
103
+ private flushTimer;
104
+ private activeBatches;
105
+ private isShuttingDown;
106
+ private isFlushing;
107
+ private readonly endpoint;
108
+ private readonly headers;
109
+ private readonly sendBatch;
110
+ constructor(endpoint: string, headers: Record<string, string>, options?: EventQueueOptions);
111
+ /**
112
+ * Add an event to the queue. Events are batched and sent automatically.
113
+ */
114
+ enqueue(payload: Record<string, unknown>): boolean;
115
+ /**
116
+ * Flush all pending events. Call this before your application exits.
117
+ */
118
+ flush(): Promise<void>;
119
+ /**
120
+ * Shutdown the queue gracefully. Flushes all pending events and stops the timer.
121
+ */
122
+ shutdown(): Promise<void>;
123
+ /**
124
+ * Get current queue statistics.
125
+ */
126
+ getStats(): {
127
+ queuedEvents: number;
128
+ activeBatches: number;
129
+ isShuttingDown: boolean;
130
+ };
131
+ private startFlushTimer;
132
+ private stopFlushTimer;
133
+ private cleanupCompletedBatches;
134
+ private processBatch;
135
+ private createBatchSender;
136
+ private sleep;
137
+ }
138
+
139
+ interface PrimeOrbitClientOptions {
140
+ /** Your PrimeOrbit API key */
141
+ apiKey?: string;
142
+ /** Custom endpoint URL */
143
+ endpoint?: string;
144
+ /** Enable verbose logging for missing optional fields */
145
+ verbose?: boolean;
146
+ /**
147
+ * Enable event batching for high-throughput scenarios.
148
+ * When enabled, events are queued and sent in batches instead of immediately.
149
+ * Default: false (for backward compatibility)
150
+ */
151
+ enableBatching?: boolean;
152
+ /** Options for the event queue (only used when enableBatching is true) */
153
+ queueOptions?: EventQueueOptions;
154
+ }
155
+ declare class PrimeOrbitClient {
156
+ private apiKey;
157
+ private baseUrl;
158
+ private baseProperties;
159
+ private verbose;
160
+ private enableBatching;
161
+ private eventQueue;
162
+ /**
163
+ * @param {string} apiKey - Your PrimeOrbit API key
164
+ * @param {string} [endpoint] - endpoint URL
165
+ * @deprecated Use the options object constructor instead for new features
166
+ */
167
+ constructor(apiKey?: string, endpoint?: string);
168
+ /**
169
+ * @param {PrimeOrbitClientOptions} options - Configuration options
170
+ */
171
+ constructor(options: PrimeOrbitClientOptions);
172
+ private initializeEventQueue;
173
+ add_properties(props: Record<string, unknown>): void;
174
+ _headers(): Record<string, string>;
175
+ /**
176
+ * Enable or disable event batching at runtime.
177
+ * When enabled, events are queued and sent in batches.
178
+ * When disabled, events are sent immediately (original behavior).
179
+ *
180
+ * @param enable - Whether to enable batching
181
+ * @param queueOptions - Optional queue configuration (only used when enabling)
182
+ */
183
+ setBatching(enable: boolean, queueOptions?: EventQueueOptions): void;
184
+ /**
185
+ * Flush all queued events immediately.
186
+ * Call this before your application exits to ensure all events are sent.
187
+ * Only applicable when batching is enabled.
188
+ */
189
+ flush(): Promise<void>;
190
+ /**
191
+ * Shutdown the client gracefully.
192
+ * Flushes all pending events and releases resources.
193
+ * Call this when your application is shutting down.
194
+ */
195
+ shutdown(): Promise<void>;
196
+ /**
197
+ * Get queue statistics.
198
+ * Only applicable when batching is enabled.
199
+ */
200
+ getQueueStats(): {
201
+ queuedEvents: number;
202
+ activeBatches: number;
203
+ isShuttingDown: boolean;
204
+ } | null;
205
+ /**
206
+ * Records any agent interaction event such as user_message, agent_response, or user_feedback.
207
+ *
208
+ * @param eventType - Type of event. Can be:
209
+ * - 'user_message' – when the user sends a message
210
+ * - 'agent_response' – when the agent replies
211
+ * - 'user_feedback' – when the user gives feedback
212
+ *
213
+ * @param params - Object containing event details:
214
+ * - conversationId: string – Unique conversation identifier
215
+ * - agentId: string – Agent ID
216
+ * - userId: string – User ID
217
+ * - productId?: string – Optional product ID
218
+ * - content: string – Text content of the event (user message, agent reply, or feedback)
219
+ * - sessionId?: string – Optional session ID
220
+ * - messageId?: string – Optional message ID (for tracking within conversation)
221
+ * - inputMode?: string – Optional input mode (e.g., 'text', 'voice')
222
+ * - device?: string – Optional device name or model (e.g., 'iPhone 13')
223
+ * - country?: string – Optional country of the user (ISO country code, e.g., 'US')
224
+ * - platform?: string – Optional platform or OS (e.g., 'iOS', 'Android', 'Web')
225
+ * - language?: string – Optional language of the user (e.g., 'en-US')
226
+ * - Any additional properties will be captured in additional_properties
227
+ *
228
+ * @returns Promise that resolves when the event is queued (batching) or sent (non-batching).
229
+ * When batching is enabled, returns true if queued successfully, false if dropped.
230
+ */
231
+ record_raw_event(eventType: 'user_message' | 'agent_response' | 'user_feedback', params: Record<string, unknown>): Promise<boolean | undefined>;
232
+ }
233
+
234
+ /**
235
+ * Logger module for PrimeOrbit SDK
236
+ *
237
+ * Provides configurable logging with different levels and formatting.
238
+ * All logs are prefixed with [PrimeOrbit] for easy filtering.
239
+ */
240
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
241
+ /**
242
+ * Sets the log level for the SDK.
243
+ * Messages below this level will not be logged.
244
+ *
245
+ * @param level - The minimum log level to display
246
+ */
247
+ declare function setLogLevel(level: LogLevel): void;
248
+ /**
249
+ * Gets the current log level.
250
+ *
251
+ * @returns The current log level
252
+ */
253
+ declare function getLogLevel(): LogLevel;
254
+ /**
255
+ * Logger instance with methods for each log level.
256
+ * Console usage is intentional here as this is the logging implementation.
257
+ */
258
+ declare const logger: {
259
+ /**
260
+ * Log a debug message. Only shown when log level is 'debug'.
261
+ */
262
+ debug(message: string, ...args: unknown[]): void;
263
+ /**
264
+ * Log an informational message.
265
+ */
266
+ info(message: string, ...args: unknown[]): void;
267
+ /**
268
+ * Log a warning message.
269
+ */
270
+ warn(message: string, ...args: unknown[]): void;
271
+ /**
272
+ * Log an error message.
273
+ */
274
+ error(message: string, ...args: unknown[]): void;
275
+ };
276
+
277
+ export { EventQueue, type EventQueueOptions, type LogLevel, PrimeOrbitClient, type PrimeOrbitClientOptions, type QueuedEvent, getLogLevel, getPrimeOrbitApiUrl, logger, record_star_rating, record_thumbs_feedback, setLogLevel, setPrimeOrbitApiUrl, wrapAsyncToRecordLatency, wrapSyncToRecordLatency, wrapToRecordLatency };