@unisphere/genie-types 1.22.0 → 1.23.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisphere/genie-types",
3
- "version": "1.22.0",
3
+ "version": "1.23.0",
4
4
  "author": "kaltura",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
@@ -11,7 +11,8 @@
11
11
  "dependencies": {
12
12
  "@kaltura-sdk/rtc-core": "^1.25.13",
13
13
  "@unisphere/core": "^1.99.0",
14
- "@unisphere/runtime": "^1.97.0"
14
+ "@unisphere/runtime": "^1.97.0",
15
+ "@unisphere/runtime-js": "^1.96.0"
15
16
  },
16
17
  "module": "./index.esm.js",
17
18
  "type": "module",
package/src/index.d.ts CHANGED
@@ -3,8 +3,5 @@ export * from './lib/chat-runtime';
3
3
  export * from './lib/shared';
4
4
  export * from './lib/types';
5
5
  export * from './lib/avatar-runtime';
6
- export * from './lib/admin-runtime';
7
- export * from './lib/admin-demo-runtime';
8
- export * from './lib/application-runtime';
9
6
  export * from './lib/chat-customizations-types';
10
7
  export * from './lib/general-visual-types';
@@ -1,252 +1,12 @@
1
1
  import { UnisphereService } from '@unisphere/runtime';
2
- import { TinyDataStoreConsumer } from '@unisphere/core';
3
- import { DeviceEnumerationResult } from '@kaltura-sdk/rtc-core';
4
- import type { ChatEntry } from './chat-types';
5
- /**
6
- * Avatar service configuration.
7
- */
8
- export type AvatarConfig = {
9
- /** Avatar server URL */
10
- serverUrl: string;
11
- /** Avatar player URL */
12
- playerUrl: string;
13
- };
14
- /**
15
- * Audio device types for avatar connections.
16
- */
17
- export declare enum DeviceType {
18
- /** Microphone input device */
19
- AudioInput = "audioinput",
20
- /** Speaker/headphone output device */
21
- AudioOutput = "audiooutput"
22
- }
23
- /**
24
- * Avatar connection status states.
25
- *
26
- * @deprecated Use AvatarConnectionStatus instead
27
- */
28
- export declare enum AvatarStatus {
29
- /** Establishing connection */
30
- Connecting = "connecting",
31
- /** Successfully connected */
32
- Connected = "connected",
33
- /** Not connected */
34
- Disconnected = "disconnected",
35
- /** Connection error occurred */
36
- Error = "error"
37
- }
38
- /**
39
- * Avatar connection lifecycle states.
40
- */
41
- export declare enum AvatarConnectionStatus {
42
- /** Establishing connection */
43
- Connecting = "connecting",
44
- /** Successfully connected */
45
- Connected = "connected",
46
- /** Not connected */
47
- Disconnected = "disconnected",
48
- /** Closing connection */
49
- Disconnecting = "disconnecting",
50
- /** Connection error occurred */
51
- Error = "error"
52
- }
53
- /**
54
- * Avatar client initialization status.
55
- */
56
- export type AvatarClientStatus = 'loading' | 'ready';
57
- /**
58
- * Reasons why avatar agent may be unavailable.
59
- */
60
- export declare enum AgentUnavailabilityReasons {
61
- /** No agents are currently available */
62
- NoAgents = "NoAgents",
63
- /** Maximum concurrent connections reached */
64
- CapacityReached = "CapacityReached"
65
- }
66
- export type UserDevicesList = Pick<DeviceEnumerationResult, 'availableDevices'> & {
67
- selectedDevices: {
68
- audioDevice: string | null;
69
- audioOutputDevice: string | null;
70
- };
71
- };
72
- /**
73
- * Simplified WebSocket interface for avatar communication.
74
- */
75
- export interface SimplifiedSocket {
76
- /** Register event listener */
77
- on: (event: string, callback: (data: any) => void) => void;
78
- /** Remove event listener */
79
- off: (event: string) => void;
80
- /** Emit event with data */
81
- emit: (event: string, data: any) => void;
82
- }
83
- /**
84
- * Agent state and analytics data.
85
- */
86
- export type AgentData = {
87
- /** Whether the agent is currently speaking */
88
- isTalking: boolean;
89
- /** Number of answers provided in this session */
90
- answersCount: number;
91
- /** Optional analytics tracking information */
92
- analyticsInfo?: {
93
- /** Thread identifier */
94
- threadId?: string;
95
- /** Message identifier */
96
- messageId?: string;
97
- };
98
- };
99
- /**
100
- * Agent screen sharing data
101
- */
102
- export type AgentScreenShareInfo = {
103
- active: boolean;
104
- stream: MediaStream | null;
105
- analysisReady: boolean;
106
- };
107
- /**
108
- * Content data for avatar tool integrations.
109
- *
110
- * Represents tool content displayed within avatar experiences, with different
111
- * states for loading, ready, and error conditions.
112
- */
113
- export type AvatarContentData<TSettings = any> = {
114
- /** Unique content identifier */
115
- id: string;
116
- /** Associated thread ID */
117
- threadId?: string;
118
- /** Associated message ID */
119
- messageId?: string;
120
- /** Optional new title for the content */
121
- newTitle?: string;
122
- /** Content type identifier */
123
- type: 'unisphere-tool';
124
- /** Widget name for the tool */
125
- widgetName: string;
126
- /** Runtime name for the tool */
127
- runtimeName: string;
128
- } & ({
129
- /** Content status: loading or ready */
130
- status: 'loading' | 'ready';
131
- /** Tool settings configuration */
132
- settings: TSettings;
133
- /** Optional thread ID */
134
- threadId?: string;
135
- } | {
136
- /** Content status: error occurred */
137
- status: 'error';
138
- });
139
- /**
140
- * Internal avatar connection proxy interface for advanced operations.
141
- *
142
- * @internal
143
- */
144
- export interface AvatarConnectionProxInternalType {
145
- /** Send direct event to server */
146
- _directEventToServer(message: string, data: any): void;
147
- /** Set local content state */
148
- _setLocalContent(content: any): void;
149
- /** Handle player errors */
150
- onPlayerError(error: Error): void;
151
- /** WebSocket connection observable */
152
- webSocket: TinyDataStoreConsumer<SimplifiedSocket | null>;
153
- }
154
- export declare enum DisconnectReasons {
155
- UserRequested = "UserRequested",
156
- WebsocketConnectionFailed = "WebsocketConnectionFailed",
157
- WebsocketDisconnected = "WebsocketDisconnected",
158
- PeerRemoved = "PeerRemoved",
159
- NoAgentsAvailable = "NoAgentsAvailable",
160
- ExceededTierLimits = "ExceededTierLimits",
161
- BadRequest = "BadRequest",
162
- UnsupportedClient = "UnsupportedClient",
163
- ConnectionError = "ConnectionError",
164
- UserMediaInitializationFailed = "UserMediaInitializationFailed",
165
- ASRConnectionFailed = "ASRConnectionFailed",
166
- DestroyFailed = "DestroyFailed",
167
- ConversationEnded = "ConversationEnded",
168
- AgentResponseTimeout = "AgentResponseTimeout",
169
- UnknownReason = "UnknownReason",
170
- DevicesPermissionDenied = "DevicesPermissionDenied",
171
- JoinRoomTimeout = "JoinRoomTimeout",
172
- ConnectionTimeout = "ConnectionTimeout",
173
- PlayerConnectionFailed = "PlayerConnectionFailed"
174
- }
175
- /**
176
- * Avatar connection proxy for managing avatar session state and interactions.
177
- *
178
- * Provides observable properties for connection state and methods for
179
- * sending messages and managing the avatar connection lifecycle.
180
- */
181
- export interface AvatarConnectionProxyType {
182
- /** Observable connection status */
183
- readonly status: TinyDataStoreConsumer<AvatarConnectionStatus>;
184
- /** Observable player URL */
185
- readonly playerUrl: TinyDataStoreConsumer<string | null>;
186
- /** Observable session identifier */
187
- readonly sessionId: TinyDataStoreConsumer<string | null>;
188
- /** Observable TURN server URL */
189
- readonly turnServerURL: TinyDataStoreConsumer<string | null>;
190
- /** Observable content data */
191
- readonly content: TinyDataStoreConsumer<AvatarContentData | null>;
192
- /** Observable agent state and analytics */
193
- readonly agentData: TinyDataStoreConsumer<AgentData | null>;
194
- /** Observable available audio devices */
195
- readonly devicesList: TinyDataStoreConsumer<{
196
- audioInput: MediaDeviceInfo[];
197
- audioOutput: MediaDeviceInfo[];
198
- } | null>;
199
- /** Observable disconnect information */
200
- readonly disconnectData: TinyDataStoreConsumer<{
201
- reason: DisconnectReasons;
202
- error?: Error;
203
- suppressNotification?: boolean;
204
- skipDisconnect?: boolean;
205
- } | null>;
206
- /** Observable thread identifier */
207
- readonly threadId: TinyDataStoreConsumer<string | null>;
208
- /** Observable chat log entries */
209
- readonly chatLog: TinyDataStoreConsumer<ChatEntry[]>;
210
- /** Observable screen share info state */
211
- readonly screenShareInfo: TinyDataStoreConsumer<AgentScreenShareInfo | null>;
212
- /** Unique connection identifier */
213
- readonly id: string;
214
- /** Send text message to avatar */
215
- sendAskViaText(text: string): void;
216
- /** Send custom event to avatar */
217
- sendDirectEvent(message: string, data: unknown): void;
218
- /** Terminate the avatar connection */
219
- destroy(): void;
220
- /** Start screen sharing */
221
- startScreenShare(): void;
222
- /** Stop screen sharing */
223
- stopScreenShare(): void;
224
- }
225
- export declare const isAvatarConnectionProxyInternalType: (x: any) => x is AvatarConnectionProxInternalType;
2
+ import { AvatarVisualBridgeType } from './visual-bridge-types';
226
3
  export interface AvatarServiceType extends UnisphereService {
227
4
  id: 'unisphere.widget.genie.avatar';
228
- connection: TinyDataStoreConsumer<AvatarConnectionProxyType | null>;
229
- audioState: TinyDataStoreConsumer<{
230
- muted: boolean;
231
- isSpeaking: boolean;
232
- }>;
233
- devicesList: TinyDataStoreConsumer<UserDevicesList | null>;
234
- agentPreviewUrl: TinyDataStoreConsumer<string | null>;
235
- agentPreviewImageUrl: TinyDataStoreConsumer<string | null>;
236
- threadId: TinyDataStoreConsumer<string | null>;
237
- setThreadId(id: string | null): void;
238
- isPreviewMode: TinyDataStoreConsumer<boolean>;
239
- features: TinyDataStoreConsumer<{
240
- screenShare?: boolean;
241
- chat?: boolean;
242
- } | undefined>;
5
+ readonly visualBridge: AvatarVisualBridgeType;
243
6
  connect(options?: {
244
7
  threadId?: string;
245
8
  messageId?: string;
246
9
  }): void;
247
- disconnect(): void;
248
- onPlayerReady(): void;
249
- onPlayerError(error: Error): void;
250
10
  getKalturaPlayerParams(): {
251
11
  kalturaServerURI: string;
252
12
  partnerId: string;
@@ -254,9 +14,5 @@ export interface AvatarServiceType extends UnisphereService {
254
14
  ks: string;
255
15
  } | null;
256
16
  getEntrySourceUrl(entryId: string, startTime?: number): string;
257
- askViaText(text: string): void;
258
- changeDevice(deviceType: DeviceType, deviceId: string): Promise<boolean>;
259
- toggleMuteAudio(muted: boolean): Promise<void>;
260
- joinSTV(containerId: string, sessionId: string, stvUrl: string, onConnected: () => void): Promise<void>;
261
- leaveSTV(): void;
17
+ clearContent(): void;
262
18
  }
@@ -4,3 +4,5 @@ export * from './chat-types';
4
4
  export * from './avatar-service-types';
5
5
  export * from './contained-visual-types';
6
6
  export * from './floater-visual-types';
7
+ export * from './shared-types';
8
+ export * from './visual-bridge-types';
@@ -22,6 +22,10 @@ export type AvatarRuntime = UnisphereRuntimeBaseType<AvatarRuntimeSettings> & {
22
22
  disconnect(): void;
23
23
  /** Observable connection status */
24
24
  isConnected: TinyDataStoreConsumer<boolean>;
25
+ /** Observable chat panel open state */
26
+ isChatPanelOpen: TinyDataStoreConsumer<boolean>;
27
+ /** Update chat panel open state */
28
+ setChatPanelOpen(value: boolean): void;
25
29
  /** Observable current thread ID */
26
30
  threadId: TinyDataStoreConsumer<string | null>;
27
31
  /** Set the active conversation thread ID */
@@ -91,8 +95,6 @@ export interface AvatarRuntimeSettings {
91
95
  agentMode?: boolean;
92
96
  /** Enable audio noise reduction for clearer audio */
93
97
  noiseReductionEnabled?: boolean;
94
- /** STV cast mode for avatar streaming ('webrtc' | 'rtmp') */
95
- castMode?: string;
96
98
  /** Kaltura service integration settings */
97
99
  kaltura: {
98
100
  /** Kaltura session token for authentication */
@@ -0,0 +1,199 @@
1
+ import { TinyDataStoreConsumer } from '@unisphere/core';
2
+ import { DeviceEnumerationResult } from '@kaltura-sdk/rtc-core';
3
+ import type { ChatEntry } from './chat-types';
4
+ /**
5
+ * Audio device types for avatar connections.
6
+ */
7
+ export declare enum DeviceType {
8
+ /** Microphone input device */
9
+ AudioInput = "audioinput",
10
+ /** Speaker/headphone output device */
11
+ AudioOutput = "audiooutput"
12
+ }
13
+ /**
14
+ * Avatar connection lifecycle states.
15
+ */
16
+ export declare enum AvatarConnectionStatus {
17
+ /** Establishing connection */
18
+ Connecting = "connecting",
19
+ /** Successfully connected */
20
+ Connected = "connected",
21
+ /** Not connected */
22
+ Disconnected = "disconnected",
23
+ /** Closing connection */
24
+ Disconnecting = "disconnecting",
25
+ /** Connection error occurred */
26
+ Error = "error"
27
+ }
28
+ export type UserDevicesList = Pick<DeviceEnumerationResult, 'availableDevices'> & {
29
+ selectedDevices: {
30
+ audioDevice: string | null;
31
+ audioOutputDevice: string | null;
32
+ };
33
+ };
34
+ /**
35
+ * Simplified WebSocket interface for avatar communication.
36
+ */
37
+ export interface SimplifiedSocket {
38
+ /** Register event listener */
39
+ on: (event: string, callback: (data: any) => void) => void;
40
+ /** Remove event listener */
41
+ off: (event: string) => void;
42
+ /** Emit event with data */
43
+ emit: (event: string, data: any) => void;
44
+ }
45
+ /**
46
+ * Agent state and analytics data.
47
+ */
48
+ export type AgentData = {
49
+ /** Whether the agent is currently speaking */
50
+ isTalking: boolean;
51
+ /** Number of answers provided in this session */
52
+ answersCount: number;
53
+ /** Optional analytics tracking information */
54
+ analyticsInfo?: {
55
+ /** Thread identifier */
56
+ threadId?: string;
57
+ /** Message identifier */
58
+ messageId?: string;
59
+ };
60
+ };
61
+ /**
62
+ * Agent screen sharing data
63
+ */
64
+ export type AgentScreenShareInfo = {
65
+ active: boolean;
66
+ stream: MediaStream | null;
67
+ analysisReady: boolean;
68
+ };
69
+ /**
70
+ * Content data for avatar tool integrations.
71
+ *
72
+ * Represents tool content displayed within avatar experiences, with different
73
+ * states for loading, ready, and error conditions.
74
+ */
75
+ export type AvatarContentData<TSettings = any> = {
76
+ /** Unique content identifier */
77
+ id: string;
78
+ /** Associated thread ID */
79
+ threadId?: string;
80
+ /** Associated message ID */
81
+ messageId?: string;
82
+ /** Optional new title for the content */
83
+ newTitle?: string;
84
+ /** Content type identifier */
85
+ type: 'unisphere-tool';
86
+ /** Widget name for the tool */
87
+ widgetName: string;
88
+ /** Runtime name for the tool */
89
+ runtimeName: string;
90
+ } & ({
91
+ /** Content status: loading or ready */
92
+ status: 'loading' | 'ready';
93
+ /** Tool settings configuration */
94
+ settings: TSettings;
95
+ /** Optional thread ID */
96
+ threadId?: string;
97
+ } | {
98
+ /** Content status: error occurred */
99
+ status: 'error';
100
+ });
101
+ /**
102
+ * Internal avatar connection proxy interface for advanced operations.
103
+ *
104
+ * @internal
105
+ */
106
+ export interface AvatarConnectionProxInternalType {
107
+ /** Send direct event to server */
108
+ _directEventToServer(message: string, data: any): void;
109
+ /** Set local content state */
110
+ _setLocalContent(content: any): void;
111
+ /** Handle player errors */
112
+ onPlayerError(error: Error): void;
113
+ /** WebSocket connection observable */
114
+ webSocket: TinyDataStoreConsumer<SimplifiedSocket | null>;
115
+ }
116
+ export declare enum DisconnectReasons {
117
+ UserRequested = "UserRequested",
118
+ WebsocketConnectionFailed = "WebsocketConnectionFailed",
119
+ WebsocketDisconnected = "WebsocketDisconnected",
120
+ PeerRemoved = "PeerRemoved",
121
+ NoAgentsAvailable = "NoAgentsAvailable",
122
+ ExceededTierLimits = "ExceededTierLimits",
123
+ BadRequest = "BadRequest",
124
+ UnsupportedClient = "UnsupportedClient",
125
+ ConnectionError = "ConnectionError",
126
+ UserMediaInitializationFailed = "UserMediaInitializationFailed",
127
+ ASRConnectionFailed = "ASRConnectionFailed",
128
+ DestroyFailed = "DestroyFailed",
129
+ ConversationEnded = "ConversationEnded",
130
+ AgentResponseTimeout = "AgentResponseTimeout",
131
+ UnknownReason = "UnknownReason",
132
+ DevicesPermissionDenied = "DevicesPermissionDenied",
133
+ JoinRoomTimeout = "JoinRoomTimeout",
134
+ ConnectionTimeout = "ConnectionTimeout",
135
+ PlayerConnectionFailed = "PlayerConnectionFailed"
136
+ }
137
+ /**
138
+ * Avatar connection proxy for managing avatar session state and interactions.
139
+ *
140
+ * Provides observable properties for connection state and methods for
141
+ * sending messages and managing the avatar connection lifecycle.
142
+ */
143
+ export interface AvatarConnectionProxyType {
144
+ /** Observable connection status */
145
+ readonly status: TinyDataStoreConsumer<AvatarConnectionStatus>;
146
+ /** Observable player URL */
147
+ readonly playerUrl: TinyDataStoreConsumer<string | null>;
148
+ /** Observable session identifier */
149
+ readonly sessionId: TinyDataStoreConsumer<string | null>;
150
+ /** Observable cast mode from server */
151
+ readonly castMode: TinyDataStoreConsumer<string | null>;
152
+ /** Observable TURN server URL */
153
+ readonly turnServerURL: TinyDataStoreConsumer<string | null>;
154
+ /** Observable content data */
155
+ readonly content: TinyDataStoreConsumer<AvatarContentData | null>;
156
+ /** Observable agent state and analytics */
157
+ readonly agentData: TinyDataStoreConsumer<AgentData | null>;
158
+ /** Observable available audio devices */
159
+ readonly devicesList: TinyDataStoreConsumer<{
160
+ audioInput: MediaDeviceInfo[];
161
+ audioOutput: MediaDeviceInfo[];
162
+ } | null>;
163
+ /** Observable disconnect information */
164
+ readonly disconnectData: TinyDataStoreConsumer<{
165
+ reason: DisconnectReasons;
166
+ error?: Error;
167
+ suppressNotification?: boolean;
168
+ skipDisconnect?: boolean;
169
+ } | null>;
170
+ /** Observable thread identifier */
171
+ readonly threadId: TinyDataStoreConsumer<string | null>;
172
+ /** Observable chat log entries */
173
+ readonly chatLog: TinyDataStoreConsumer<ChatEntry[]>;
174
+ /** Observable screen share info state */
175
+ readonly screenShareInfo: TinyDataStoreConsumer<AgentScreenShareInfo | null>;
176
+ /** Observable form paused state */
177
+ readonly isAvatarPaused: TinyDataStoreConsumer<boolean>;
178
+ /** Unique connection identifier */
179
+ readonly id: string;
180
+ /** Send text message to avatar */
181
+ sendAskViaText(text: string): void;
182
+ /** Send custom event to avatar */
183
+ sendDirectEvent(message: string, data: unknown): void;
184
+ /** Terminate the avatar connection */
185
+ destroy(): void;
186
+ /** Start screen sharing */
187
+ startScreenShare(): void;
188
+ /** Stop screen sharing */
189
+ stopScreenShare(): void;
190
+ /** Request avatar pause immediately */
191
+ pauseAvatar(): void;
192
+ /** Request avatar resume */
193
+ resumeAvatar(): void;
194
+ /** Request avatar pause after current speech finishes */
195
+ pauseAvatarAfterSpeaking(): void;
196
+ /** Clear current visual content */
197
+ clearContent(): void;
198
+ }
199
+ export declare const isAvatarConnectionProxyInternalType: (x: any) => x is AvatarConnectionProxInternalType;
@@ -0,0 +1,41 @@
1
+ import { AvatarContentData } from './shared-types';
2
+ import { UnisphereVisualBridgeType } from '@unisphere/runtime-js';
3
+ export type SlotMode = 'append' | 'replace';
4
+ export type SlotMount = (container: HTMLElement) => () => void;
5
+ export type SlotType = 'status' | 'controls';
6
+ export interface SlotConfig {
7
+ mount: SlotMount;
8
+ mode?: SlotMode;
9
+ }
10
+ export interface SlotEntry {
11
+ id: string;
12
+ mount: SlotMount;
13
+ mode: SlotMode;
14
+ }
15
+ export type LayoutType = 'cinema' | 'focusContent' | 'balanced' | 'floatingCorner';
16
+ export declare const SUPPORTED_LAYOUT_TYPES: Set<string>;
17
+ export interface LayoutConfig {
18
+ type: LayoutType;
19
+ background?: string;
20
+ }
21
+ export interface VisualBehavior {
22
+ pauseAfterSpeaking?: boolean;
23
+ }
24
+ export interface VisualTypeConfig {
25
+ behavior?: VisualBehavior;
26
+ layout?: LayoutConfig;
27
+ slots?: Record<SlotType, SlotConfig>;
28
+ }
29
+ export interface ResolvedCapabilities {
30
+ layout?: LayoutConfig;
31
+ slots: Partial<Record<SlotType, SlotEntry[]>>;
32
+ }
33
+ export interface ActionContext {
34
+ serverUrl: string;
35
+ ks: string;
36
+ threadId: string | null;
37
+ content: AvatarContentData | null;
38
+ }
39
+ export interface AvatarVisualBridgeType extends UnisphereVisualBridgeType<VisualTypeConfig, ResolvedCapabilities> {
40
+ getActionContext(): ActionContext;
41
+ }
@@ -72,6 +72,11 @@ export interface ChatCustomization {
72
72
  avatar?: boolean;
73
73
  chat?: boolean;
74
74
  };
75
+ avatar?: {
76
+ stage: 'contained';
77
+ } | {
78
+ stage: 'fullscreen';
79
+ };
75
80
  }
76
81
  /**
77
82
  * Suggested question for initial chat page.
@@ -57,7 +57,7 @@ export interface ChatRuntimePlayerPluginSettings {
57
57
  shareUrl?: GlobalChatSettings['shareUrl'];
58
58
  /** Enable agent mode for advanced AI capabilities */
59
59
  agentMode?: boolean;
60
- /** Avatar display mode: 'dialog' for modal or 'contained' for embedded */
60
+ /** @deprecated Use customization.avatar.stage instead */
61
61
  avatarContainerMode?: 'dialog' | 'contained';
62
62
  }
63
63
  export declare const chatRuntimePlayerPluginSettingsSchema: ValidatorSchema;
@@ -68,8 +68,6 @@ export interface ChatRuntimeSettings {
68
68
  context?: ChatContext;
69
69
  /** Enable agent mode for advanced AI features */
70
70
  agentMode?: boolean;
71
- /** Avatar display mode: 'dialog' for modal or 'contained' for embedded */
72
- avatarContainerMode?: 'dialog' | 'contained';
73
71
  /** Callback function to generate source URLs with entry ID and optional start time */
74
72
  getSourceUrl?: GlobalChatSettings['getSourceUrl'];
75
73
  /** Configuration for conversation sharing functionality */
@@ -81,6 +79,8 @@ export interface ChatRuntimeSettings {
81
79
  };
82
80
  /** External service integrations (Kaltura player, avatar) */
83
81
  integrations?: GlobalChatSettings['integrations'];
82
+ /** @deprecated Use customization.avatar.stage instead */
83
+ avatarContainerMode?: 'dialog' | 'contained';
84
84
  /** UI customization options */
85
85
  customization?: {
86
86
  /** Breadcrumb navigation configuration */
@@ -123,6 +123,7 @@ export type FloaterCTAVisualSettings = {
123
123
  mode?: 'chat' | 'everywhere';
124
124
  openByDefault?: boolean;
125
125
  context?: ChatContext;
126
+ customization?: ChatCustomization;
126
127
  } & {
127
128
  type?: 'button';
128
129
  text?: string;
@@ -132,6 +133,7 @@ export interface FloaterVisualSettings {
132
133
  schemaVersion?: '1';
133
134
  mode?: 'chat' | 'everywhere';
134
135
  context?: ChatContext;
136
+ customization?: ChatCustomization;
135
137
  }
136
138
  export declare const floaterVisualSettingsSchema: ValidatorSchema;
137
139
  export declare const floaterCTAVisualSettingsSchema: ValidatorSchema;
@@ -1 +0,0 @@
1
- export * from './runtime-types';
@@ -1,14 +0,0 @@
1
- import { ValidatorSchema } from '@unisphere/core';
2
- /**
3
- * Configuration settings for the admin demo runtime.
4
- *
5
- * @example
6
- * ```typescript
7
- * const settings: AdminDemoRuntimeSettings = {};
8
- * ```
9
- */
10
- export interface AdminDemoRuntimeSettings {
11
- }
12
- export declare const adminDemoRuntimeSettingsSchema: ValidatorSchema;
13
- /** Runtime name constant for admin demo experiences */
14
- export declare const AdminDemoRuntimeName: "admin-demo";
@@ -1 +0,0 @@
1
- export * from './runtime-types';
@@ -1,33 +0,0 @@
1
- import { ValidatorSchema } from '@unisphere/core';
2
- /**
3
- * Configuration settings for the admin runtime.
4
- *
5
- * @example
6
- * Basic admin setup:
7
- * ```typescript
8
- * const settings: AdminRuntimeSettings = {
9
- * ks: 'your-kaltura-session-token'
10
- * };
11
- * ```
12
- *
13
- * @example
14
- * With partner configuration:
15
- * ```typescript
16
- * const settings: AdminRuntimeSettings = {
17
- * ks: 'your-kaltura-session-token',
18
- * partnerId: '12345',
19
- * uiConfId: '54321'
20
- * };
21
- * ```
22
- */
23
- export interface AdminRuntimeSettings {
24
- /** Kaltura session token for authentication */
25
- ks: string;
26
- /** UI configuration ID */
27
- uiConfId?: string;
28
- /** Kaltura partner ID */
29
- partnerId?: string;
30
- }
31
- export declare const adminRuntimeSettingsSchema: ValidatorSchema;
32
- /** Runtime name constant for admin experiences */
33
- export declare const AdminRuntimeName: "admin";
@@ -1 +0,0 @@
1
- export * from './runtime-types';