@wave-av/sdk 2.0.4 → 2.0.6

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.
Files changed (126) hide show
  1. package/dist/audience.d.ts +105 -0
  2. package/dist/audience.d.ts.map +1 -0
  3. package/dist/billing-types.d.ts +39 -0
  4. package/dist/billing-types.d.ts.map +1 -0
  5. package/dist/billing-types.js +18 -0
  6. package/dist/billing-types.mjs +0 -0
  7. package/dist/billing.d.ts +69 -0
  8. package/dist/billing.d.ts.map +1 -0
  9. package/dist/billing.js +139 -0
  10. package/dist/billing.mjs +9 -0
  11. package/dist/camera-control.d.ts +55 -0
  12. package/dist/camera-control.d.ts.map +1 -0
  13. package/dist/captions-types.d.ts +119 -0
  14. package/dist/captions-types.d.ts.map +1 -0
  15. package/dist/captions.d.ts +218 -0
  16. package/dist/captions.d.ts.map +1 -0
  17. package/dist/chapters-types.d.ts +87 -0
  18. package/dist/chapters-types.d.ts.map +1 -0
  19. package/dist/chapters.d.ts +207 -0
  20. package/dist/chapters.d.ts.map +1 -0
  21. package/dist/chunk-I3V47I4W.mjs +114 -0
  22. package/dist/client-types.d.ts +59 -0
  23. package/dist/client-types.d.ts.map +1 -0
  24. package/dist/client.d.ts +120 -0
  25. package/dist/client.d.ts.map +1 -0
  26. package/dist/clips-types.d.ts +31 -0
  27. package/dist/clips-types.d.ts.map +1 -0
  28. package/dist/clips.d.ts +230 -0
  29. package/dist/clips.d.ts.map +1 -0
  30. package/dist/cloud-switcher.d.ts +66 -0
  31. package/dist/cloud-switcher.d.ts.map +1 -0
  32. package/dist/collab-types.d.ts +205 -0
  33. package/dist/collab-types.d.ts.map +1 -0
  34. package/dist/collab.d.ts +227 -0
  35. package/dist/collab.d.ts.map +1 -0
  36. package/dist/connect.d.ts +89 -0
  37. package/dist/connect.d.ts.map +1 -0
  38. package/dist/creator.d.ts +110 -0
  39. package/dist/creator.d.ts.map +1 -0
  40. package/dist/desktop.d.ts +96 -0
  41. package/dist/desktop.d.ts.map +1 -0
  42. package/dist/distribution.d.ts +93 -0
  43. package/dist/distribution.d.ts.map +1 -0
  44. package/dist/drm.d.ts +88 -0
  45. package/dist/drm.d.ts.map +1 -0
  46. package/dist/edge.d.ts +113 -0
  47. package/dist/edge.d.ts.map +1 -0
  48. package/dist/editor-types.d.ts +237 -0
  49. package/dist/editor-types.d.ts.map +1 -0
  50. package/dist/editor.d.ts +207 -0
  51. package/dist/editor.d.ts.map +1 -0
  52. package/dist/fleet.d.ts +208 -0
  53. package/dist/fleet.d.ts.map +1 -0
  54. package/dist/ghost.d.ts +214 -0
  55. package/dist/ghost.d.ts.map +1 -0
  56. package/dist/index.d.ts +131 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +114 -0
  59. package/dist/index.mjs +49 -43
  60. package/dist/marketplace.d.ts +91 -0
  61. package/dist/marketplace.d.ts.map +1 -0
  62. package/dist/mesh.d.ts +238 -0
  63. package/dist/mesh.d.ts.map +1 -0
  64. package/dist/notifications.d.ts +83 -0
  65. package/dist/notifications.d.ts.map +1 -0
  66. package/dist/phone-types.d.ts +111 -0
  67. package/dist/phone-types.d.ts.map +1 -0
  68. package/dist/phone.d.ts +235 -0
  69. package/dist/phone.d.ts.map +1 -0
  70. package/dist/pipeline-types.d.ts +188 -0
  71. package/dist/pipeline-types.d.ts.map +1 -0
  72. package/dist/pipeline.d.ts +224 -0
  73. package/dist/pipeline.d.ts.map +1 -0
  74. package/dist/podcast.d.ts +114 -0
  75. package/dist/podcast.d.ts.map +1 -0
  76. package/dist/prism.d.ts +133 -0
  77. package/dist/prism.d.ts.map +1 -0
  78. package/dist/prompter.d.ts +185 -0
  79. package/dist/prompter.d.ts.map +1 -0
  80. package/dist/pulse.d.ts +157 -0
  81. package/dist/pulse.d.ts.map +1 -0
  82. package/dist/qr.d.ts +83 -0
  83. package/dist/qr.d.ts.map +1 -0
  84. package/dist/replay.d.ts +53 -0
  85. package/dist/replay.d.ts.map +1 -0
  86. package/dist/scene-types.d.ts +191 -0
  87. package/dist/scene-types.d.ts.map +1 -0
  88. package/dist/scene.d.ts +214 -0
  89. package/dist/scene.d.ts.map +1 -0
  90. package/dist/search-types.d.ts +211 -0
  91. package/dist/search-types.d.ts.map +1 -0
  92. package/dist/search.d.ts +251 -0
  93. package/dist/search.d.ts.map +1 -0
  94. package/dist/sentiment-types.d.ts +108 -0
  95. package/dist/sentiment-types.d.ts.map +1 -0
  96. package/dist/sentiment.d.ts +247 -0
  97. package/dist/sentiment.d.ts.map +1 -0
  98. package/dist/signage.d.ts +102 -0
  99. package/dist/signage.d.ts.map +1 -0
  100. package/dist/slides.d.ts +69 -0
  101. package/dist/slides.d.ts.map +1 -0
  102. package/dist/studio-ai-types.d.ts +199 -0
  103. package/dist/studio-ai-types.d.ts.map +1 -0
  104. package/dist/studio-ai.d.ts +219 -0
  105. package/dist/studio-ai.d.ts.map +1 -0
  106. package/dist/studio-types.d.ts +268 -0
  107. package/dist/studio-types.d.ts.map +1 -0
  108. package/dist/studio.d.ts +235 -0
  109. package/dist/studio.d.ts.map +1 -0
  110. package/dist/telemetry.d.ts +77 -0
  111. package/dist/telemetry.d.ts.map +1 -0
  112. package/dist/transcribe-types.d.ts +154 -0
  113. package/dist/transcribe-types.d.ts.map +1 -0
  114. package/dist/transcribe.d.ts +219 -0
  115. package/dist/transcribe.d.ts.map +1 -0
  116. package/dist/usb.d.ts +65 -0
  117. package/dist/usb.d.ts.map +1 -0
  118. package/dist/vault.d.ts +122 -0
  119. package/dist/vault.d.ts.map +1 -0
  120. package/dist/voice-types.d.ts +107 -0
  121. package/dist/voice-types.d.ts.map +1 -0
  122. package/dist/voice.d.ts +178 -0
  123. package/dist/voice.d.ts.map +1 -0
  124. package/dist/zoom.d.ts +92 -0
  125. package/dist/zoom.d.ts.map +1 -0
  126. package/package.json +2 -2
@@ -0,0 +1,251 @@
1
+ /**
2
+ * WAVE SDK - Search API
3
+ *
4
+ * Search across media content using text, visual, and audio queries.
5
+ *
6
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
7
+ * The API will return 403 Forbidden if the user lacks required permissions.
8
+ */
9
+ import type { WaveClient, PaginationParams, PaginatedResponse } from './client';
10
+ export * from './search-types';
11
+ import type { AudioSearchRequest, IndexStatus, SearchFilters, SearchRequest, SearchResponse, SearchResult, SearchResultType, SearchSuggestion, VisualSearchRequest } from './search-types';
12
+ export declare class SearchAPI {
13
+ private readonly client;
14
+ private readonly basePath;
15
+ constructor(client: WaveClient);
16
+ /**
17
+ * Search content
18
+ *
19
+ * Requires: search:query permission
20
+ */
21
+ search(request: SearchRequest): Promise<SearchResponse>;
22
+ /**
23
+ * Quick search (simplified API)
24
+ *
25
+ * Requires: search:query permission
26
+ */
27
+ quickSearch(query: string, options?: {
28
+ types?: SearchResultType[];
29
+ limit?: number;
30
+ filters?: SearchFilters;
31
+ }): Promise<SearchResult[]>;
32
+ /**
33
+ * Search within a specific media
34
+ *
35
+ * Requires: search:query permission
36
+ */
37
+ searchInMedia(mediaId: string, mediaType: 'video' | 'audio' | 'clip' | 'stream', query: string, options?: {
38
+ limit?: number;
39
+ }): Promise<Array<{
40
+ timestamp: number;
41
+ end_timestamp?: number;
42
+ text?: string;
43
+ score: number;
44
+ type: 'speech' | 'visual' | 'chapter';
45
+ }>>;
46
+ /**
47
+ * Visual search (search by image)
48
+ *
49
+ * Requires: search:visual permission
50
+ */
51
+ visualSearch(request: VisualSearchRequest): Promise<SearchResponse>;
52
+ /**
53
+ * Find similar frames
54
+ *
55
+ * Requires: search:visual permission
56
+ */
57
+ findSimilarFrames(mediaId: string, timestamp: number, options?: {
58
+ limit?: number;
59
+ min_similarity?: number;
60
+ }): Promise<Array<{
61
+ media_id: string;
62
+ media_type: string;
63
+ timestamp: number;
64
+ thumbnail_url: string;
65
+ similarity: number;
66
+ }>>;
67
+ /**
68
+ * Detect objects in media
69
+ *
70
+ * Requires: search:visual permission
71
+ */
72
+ detectObjects(mediaId: string, options?: {
73
+ timestamps?: number[];
74
+ confidence_threshold?: number;
75
+ }): Promise<Array<{
76
+ timestamp: number;
77
+ objects: Array<{
78
+ label: string;
79
+ confidence: number;
80
+ bounding_box: {
81
+ x: number;
82
+ y: number;
83
+ width: number;
84
+ height: number;
85
+ };
86
+ }>;
87
+ }>>;
88
+ /**
89
+ * Audio search (search by audio)
90
+ *
91
+ * Requires: search:audio permission
92
+ */
93
+ audioSearch(request: AudioSearchRequest): Promise<SearchResponse>;
94
+ /**
95
+ * Find similar audio segments
96
+ *
97
+ * Requires: search:audio permission
98
+ */
99
+ findSimilarAudio(mediaId: string, startTime: number, endTime: number, options?: {
100
+ limit?: number;
101
+ min_similarity?: number;
102
+ }): Promise<Array<{
103
+ media_id: string;
104
+ media_type: string;
105
+ start_time: number;
106
+ end_time: number;
107
+ similarity: number;
108
+ }>>;
109
+ /**
110
+ * Detect music in media
111
+ *
112
+ * Requires: search:audio permission
113
+ */
114
+ detectMusic(mediaId: string): Promise<Array<{
115
+ start_time: number;
116
+ end_time: number;
117
+ confidence: number;
118
+ music_info?: {
119
+ title?: string;
120
+ artist?: string;
121
+ album?: string;
122
+ isrc?: string;
123
+ };
124
+ }>>;
125
+ /**
126
+ * Get search suggestions
127
+ *
128
+ * Requires: search:query permission
129
+ */
130
+ getSuggestions(prefix: string, options?: {
131
+ limit?: number;
132
+ types?: SearchResultType[];
133
+ }): Promise<SearchSuggestion[]>;
134
+ /**
135
+ * Get trending searches
136
+ *
137
+ * Requires: search:query permission
138
+ */
139
+ getTrending(options?: {
140
+ limit?: number;
141
+ timeframe?: 'hour' | 'day' | 'week';
142
+ }): Promise<Array<{
143
+ query: string;
144
+ count: number;
145
+ trend: number;
146
+ }>>;
147
+ /**
148
+ * Index media for search
149
+ *
150
+ * Requires: search:index permission
151
+ */
152
+ indexMedia(mediaId: string, mediaType: 'video' | 'audio' | 'clip' | 'stream', options?: {
153
+ features?: ('transcript' | 'visual' | 'audio' | 'metadata')[];
154
+ priority?: 'low' | 'normal' | 'high';
155
+ webhook_url?: string;
156
+ }): Promise<IndexStatus>;
157
+ /**
158
+ * Get index status
159
+ *
160
+ * Requires: search:read permission
161
+ */
162
+ getIndexStatus(mediaId: string): Promise<IndexStatus>;
163
+ /**
164
+ * Reindex media
165
+ *
166
+ * Requires: search:index permission
167
+ */
168
+ reindexMedia(mediaId: string, options?: {
169
+ features?: ('transcript' | 'visual' | 'audio' | 'metadata')[];
170
+ }): Promise<IndexStatus>;
171
+ /**
172
+ * Remove media from index
173
+ *
174
+ * Requires: search:index permission (server-side RBAC enforced)
175
+ */
176
+ removeFromIndex(mediaId: string): Promise<void>;
177
+ /**
178
+ * Save a search
179
+ *
180
+ * Requires: search:save permission
181
+ */
182
+ saveSearch(name: string, request: SearchRequest, options?: {
183
+ notify_on_new?: boolean;
184
+ }): Promise<{
185
+ id: string;
186
+ name: string;
187
+ query: SearchRequest;
188
+ created_at: string;
189
+ }>;
190
+ /**
191
+ * List saved searches
192
+ *
193
+ * Requires: search:read permission
194
+ */
195
+ listSavedSearches(params?: PaginationParams): Promise<PaginatedResponse<{
196
+ id: string;
197
+ name: string;
198
+ query: SearchRequest;
199
+ last_run?: string;
200
+ new_results?: number;
201
+ }>>;
202
+ /**
203
+ * Run a saved search
204
+ *
205
+ * Requires: search:query permission
206
+ */
207
+ runSavedSearch(savedSearchId: string): Promise<SearchResponse>;
208
+ /**
209
+ * Remove a saved search
210
+ *
211
+ * Requires: search:save permission (server-side RBAC enforced)
212
+ */
213
+ removeSavedSearch(savedSearchId: string): Promise<void>;
214
+ /**
215
+ * Get search analytics
216
+ *
217
+ * Requires: search:analytics permission
218
+ */
219
+ getAnalytics(options?: {
220
+ start_date?: string;
221
+ end_date?: string;
222
+ group_by?: 'day' | 'week' | 'month';
223
+ }): Promise<{
224
+ total_searches: number;
225
+ unique_queries: number;
226
+ zero_results_rate: number;
227
+ average_results: number;
228
+ top_queries: Array<{
229
+ query: string;
230
+ count: number;
231
+ avg_results: number;
232
+ }>;
233
+ top_zero_results: Array<{
234
+ query: string;
235
+ count: number;
236
+ }>;
237
+ }>;
238
+ /**
239
+ * Wait for indexing to complete
240
+ */
241
+ waitForIndex(mediaId: string, options?: {
242
+ pollInterval?: number;
243
+ timeout?: number;
244
+ onProgress?: (status: IndexStatus) => void;
245
+ }): Promise<IndexStatus>;
246
+ }
247
+ /**
248
+ * Create a Search API instance
249
+ */
250
+ export declare function createSearchAPI(client: WaveClient): SearchAPI;
251
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ export type AnalysisStatus = 'pending' | 'processing' | 'ready' | 'failed';
2
+ export type SentimentLabel = 'very_negative' | 'negative' | 'neutral' | 'positive' | 'very_positive';
3
+ export type EmotionType = 'joy' | 'sadness' | 'anger' | 'fear' | 'surprise' | 'disgust' | 'contempt' | 'neutral';
4
+ export type SourceType = 'video' | 'audio' | 'text' | 'chat' | 'transcript';
5
+ export interface SentimentAnalysis extends Timestamps {
6
+ id: string;
7
+ organization_id: string;
8
+ source_type: SourceType;
9
+ source_id?: string;
10
+ source_url?: string;
11
+ status: AnalysisStatus;
12
+ overall_sentiment: SentimentLabel;
13
+ sentiment_score: number;
14
+ confidence: number;
15
+ dominant_emotions: EmotionType[];
16
+ duration?: number;
17
+ segment_count?: number;
18
+ error?: string;
19
+ metadata?: Metadata;
20
+ }
21
+ export interface SentimentSegment {
22
+ id: string;
23
+ start_time: number;
24
+ end_time: number;
25
+ text?: string;
26
+ sentiment: SentimentLabel;
27
+ sentiment_score: number;
28
+ confidence: number;
29
+ emotions: EmotionScore[];
30
+ speaker_id?: number;
31
+ }
32
+ export interface EmotionScore {
33
+ emotion: EmotionType;
34
+ score: number;
35
+ confidence: number;
36
+ }
37
+ export interface SentimentTrend {
38
+ timestamp: number;
39
+ sentiment_score: number;
40
+ dominant_emotion: EmotionType;
41
+ window_size: number;
42
+ }
43
+ export interface SentimentSummary {
44
+ overall_sentiment: SentimentLabel;
45
+ sentiment_score: number;
46
+ sentiment_distribution: Record<SentimentLabel, number>;
47
+ emotion_distribution: Record<EmotionType, number>;
48
+ key_moments: KeyMoment[];
49
+ topics_sentiment: TopicSentiment[];
50
+ }
51
+ export interface KeyMoment {
52
+ timestamp: number;
53
+ end_time?: number;
54
+ type: 'peak_positive' | 'peak_negative' | 'sentiment_shift' | 'high_emotion';
55
+ sentiment_score: number;
56
+ emotion: EmotionType;
57
+ description?: string;
58
+ text?: string;
59
+ }
60
+ export interface TopicSentiment {
61
+ topic: string;
62
+ sentiment: SentimentLabel;
63
+ sentiment_score: number;
64
+ mention_count: number;
65
+ examples: string[];
66
+ }
67
+ export interface CreateAnalysisRequest {
68
+ source_type: SourceType;
69
+ source_id?: string;
70
+ source_url?: string;
71
+ text?: string;
72
+ /** Analysis options */
73
+ options?: {
74
+ /** Enable emotion detection */
75
+ emotions?: boolean;
76
+ /** Enable topic extraction */
77
+ topics?: boolean;
78
+ /** Enable key moment detection */
79
+ key_moments?: boolean;
80
+ /** Segment granularity in seconds */
81
+ segment_size?: number;
82
+ /** Language (auto-detect if not specified) */
83
+ language?: string;
84
+ /** Enable speaker-level analysis */
85
+ per_speaker?: boolean;
86
+ };
87
+ /** Webhook URL for completion */
88
+ webhook_url?: string;
89
+ metadata?: Metadata;
90
+ }
91
+ export interface BatchAnalysisRequest {
92
+ items: Array<{
93
+ source_type: SourceType;
94
+ source_id?: string;
95
+ source_url?: string;
96
+ text?: string;
97
+ }>;
98
+ options?: CreateAnalysisRequest['options'];
99
+ webhook_url?: string;
100
+ }
101
+ export interface ListAnalysesParams extends PaginationParams {
102
+ status?: AnalysisStatus;
103
+ source_type?: SourceType;
104
+ sentiment?: SentimentLabel;
105
+ created_after?: string;
106
+ created_before?: string;
107
+ }
108
+ //# sourceMappingURL=sentiment-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentiment-types.d.ts","sourceRoot":"","sources":["../src/sentiment-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * WAVE SDK - Sentiment API
3
+ *
4
+ * Analyze sentiment and emotions in audio, video, and text content.
5
+ *
6
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
7
+ * The API will return 403 Forbidden if the user lacks required permissions.
8
+ */
9
+ import type { WaveClient, PaginationParams, PaginatedResponse } from './client';
10
+ import type { SentimentLabel, EmotionType, SentimentAnalysis, SentimentSegment, EmotionScore, SentimentTrend, SentimentSummary, KeyMoment, TopicSentiment, CreateAnalysisRequest, BatchAnalysisRequest, ListAnalysesParams } from './sentiment-types';
11
+ /**
12
+ * Analysis status
13
+ */
14
+ /**
15
+ * Sentiment label
16
+ */
17
+ /**
18
+ * Emotion type
19
+ */
20
+ /**
21
+ * Analysis source type
22
+ */
23
+ /**
24
+ * Sentiment analysis job
25
+ */
26
+ /**
27
+ * Sentiment segment
28
+ */
29
+ /**
30
+ * Emotion score
31
+ */
32
+ /**
33
+ * Sentiment trend point
34
+ */
35
+ /**
36
+ * Sentiment summary
37
+ */
38
+ /**
39
+ * Key emotional moment
40
+ */
41
+ /**
42
+ * Topic sentiment
43
+ */
44
+ /**
45
+ * Create analysis request
46
+ */
47
+ /**
48
+ * Batch analysis request
49
+ */
50
+ /**
51
+ * List analyses params
52
+ */
53
+ /**
54
+ * Sentiment API client
55
+ */
56
+ export declare class SentimentAPI {
57
+ private readonly client;
58
+ private readonly basePath;
59
+ constructor(client: WaveClient);
60
+ /**
61
+ * Create a sentiment analysis job
62
+ *
63
+ * Requires: sentiment:analyze permission
64
+ */
65
+ analyze(request: CreateAnalysisRequest): Promise<SentimentAnalysis>;
66
+ /**
67
+ * Analyze text directly (synchronous for short text)
68
+ *
69
+ * Requires: sentiment:analyze permission
70
+ */
71
+ analyzeText(text: string, options?: {
72
+ emotions?: boolean;
73
+ language?: string;
74
+ }): Promise<{
75
+ sentiment: SentimentLabel;
76
+ sentiment_score: number;
77
+ confidence: number;
78
+ emotions?: EmotionScore[];
79
+ }>;
80
+ /**
81
+ * Batch analyze multiple items
82
+ *
83
+ * Requires: sentiment:analyze permission
84
+ */
85
+ batchAnalyze(request: BatchAnalysisRequest): Promise<{
86
+ batch_id: string;
87
+ jobs: SentimentAnalysis[];
88
+ }>;
89
+ /**
90
+ * Get an analysis by ID
91
+ *
92
+ * Requires: sentiment:read permission
93
+ */
94
+ get(analysisId: string): Promise<SentimentAnalysis>;
95
+ /**
96
+ * Remove an analysis
97
+ *
98
+ * Requires: sentiment:remove permission (server-side RBAC enforced)
99
+ */
100
+ remove(analysisId: string): Promise<void>;
101
+ /**
102
+ * List analyses
103
+ *
104
+ * Requires: sentiment:read permission
105
+ */
106
+ list(params?: ListAnalysesParams): Promise<PaginatedResponse<SentimentAnalysis>>;
107
+ /**
108
+ * Get sentiment segments
109
+ *
110
+ * Requires: sentiment:read permission
111
+ */
112
+ getSegments(analysisId: string, params?: PaginationParams & {
113
+ start_time?: number;
114
+ end_time?: number;
115
+ sentiment?: SentimentLabel;
116
+ min_score?: number;
117
+ }): Promise<PaginatedResponse<SentimentSegment>>;
118
+ /**
119
+ * Get sentiment summary
120
+ *
121
+ * Requires: sentiment:read permission
122
+ */
123
+ getSummary(analysisId: string): Promise<SentimentSummary>;
124
+ /**
125
+ * Get sentiment trend over time
126
+ *
127
+ * Requires: sentiment:read permission
128
+ */
129
+ getTrend(analysisId: string, options?: {
130
+ window_size?: number;
131
+ resolution?: number;
132
+ }): Promise<SentimentTrend[]>;
133
+ /**
134
+ * Get key emotional moments
135
+ *
136
+ * Requires: sentiment:read permission
137
+ */
138
+ getKeyMoments(analysisId: string, options?: {
139
+ type?: KeyMoment['type'];
140
+ limit?: number;
141
+ }): Promise<KeyMoment[]>;
142
+ /**
143
+ * Get topic sentiments
144
+ *
145
+ * Requires: sentiment:read permission
146
+ */
147
+ getTopicSentiments(analysisId: string, options?: {
148
+ min_mentions?: number;
149
+ }): Promise<TopicSentiment[]>;
150
+ /**
151
+ * Get sentiment by speaker
152
+ *
153
+ * Requires: sentiment:read permission
154
+ */
155
+ getSpeakerSentiment(analysisId: string): Promise<Array<{
156
+ speaker_id: number;
157
+ speaker_label?: string;
158
+ sentiment: SentimentLabel;
159
+ sentiment_score: number;
160
+ dominant_emotions: EmotionType[];
161
+ segment_count: number;
162
+ total_duration: number;
163
+ }>>;
164
+ /**
165
+ * Start real-time sentiment analysis
166
+ *
167
+ * Requires: sentiment:realtime permission
168
+ */
169
+ startRealtime(streamId: string, options?: {
170
+ emotions?: boolean;
171
+ segment_size?: number;
172
+ language?: string;
173
+ }): Promise<{
174
+ session_id: string;
175
+ websocket_url: string;
176
+ expires_at: string;
177
+ }>;
178
+ /**
179
+ * Stop real-time analysis
180
+ *
181
+ * Requires: sentiment:realtime permission
182
+ */
183
+ stopRealtime(sessionId: string): Promise<SentimentAnalysis>;
184
+ /**
185
+ * Get real-time session status
186
+ *
187
+ * Requires: sentiment:read permission
188
+ */
189
+ getRealtimeStatus(sessionId: string): Promise<{
190
+ status: 'active' | 'paused' | 'stopped';
191
+ duration: number;
192
+ current_sentiment: SentimentLabel;
193
+ current_score: number;
194
+ segments_processed: number;
195
+ }>;
196
+ /**
197
+ * Compare sentiment between analyses
198
+ *
199
+ * Requires: sentiment:read permission
200
+ */
201
+ compare(analysisIds: string[]): Promise<{
202
+ analyses: Array<{
203
+ id: string;
204
+ sentiment: SentimentLabel;
205
+ sentiment_score: number;
206
+ dominant_emotions: EmotionType[];
207
+ }>;
208
+ comparison: {
209
+ most_positive: string;
210
+ most_negative: string;
211
+ score_range: number;
212
+ common_emotions: EmotionType[];
213
+ };
214
+ }>;
215
+ /**
216
+ * Export analysis results
217
+ *
218
+ * Requires: sentiment:read permission
219
+ */
220
+ exportAnalysis(analysisId: string, format: 'json' | 'csv' | 'pdf'): Promise<{
221
+ url: string;
222
+ expires_at: string;
223
+ }>;
224
+ /**
225
+ * Wait for analysis to complete
226
+ */
227
+ waitForReady(analysisId: string, options?: {
228
+ pollInterval?: number;
229
+ timeout?: number;
230
+ onProgress?: (analysis: SentimentAnalysis) => void;
231
+ }): Promise<SentimentAnalysis>;
232
+ /**
233
+ * Get supported languages
234
+ *
235
+ * Requires: sentiment:read permission
236
+ */
237
+ getSupportedLanguages(): Promise<Array<{
238
+ code: string;
239
+ name: string;
240
+ emotion_detection: boolean;
241
+ }>>;
242
+ }
243
+ /**
244
+ * Create a Sentiment API instance
245
+ */
246
+ export declare function createSentimentAPI(client: WaveClient): SentimentAPI;
247
+ //# sourceMappingURL=sentiment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentiment.d.ts","sourceRoot":"","sources":["../src/sentiment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EAGlB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAkB,cAAc,EAAE,WAAW,EAAc,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIlR;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAIH;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAEhC,MAAM,EAAE,UAAU;IAI9B;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIzE;;;;OAIG;IACG,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC;QACT,SAAS,EAAE,cAAc,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;KAC3B,CAAC;IAIF;;;;OAIG;IACG,YAAY,CAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAI3D;;;;OAIG;IACG,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIzD;;;;OAIG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C;;;;OAIG;IACG,IAAI,CACR,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAMhD;;;;OAIG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,gBAAgB,GAAG;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,cAAc,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAO/C;;;;OAIG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM/D;;;;OAIG;IACG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACtD,OAAO,CAAC,cAAc,EAAE,CAAC;IAO5B;;;;OAIG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACrD,OAAO,CAAC,SAAS,EAAE,CAAC;IAOvB;;;;OAIG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,cAAc,EAAE,CAAC;IAO5B;;;;OAIG;IACG,mBAAmB,CACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CACR,KAAK,CAAC;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,cAAc,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,WAAW,EAAE,CAAC;QACjC,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CACH;IAID;;;;OAIG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,OAAO,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAOF;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAMjE;;;;OAIG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QACT,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,cAAc,CAAC;QAClC,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IAIF;;;;OAIG;IACG,OAAO,CACX,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC;QACT,QAAQ,EAAE,KAAK,CAAC;YACd,EAAE,EAAE,MAAM,CAAC;YACX,SAAS,EAAE,cAAc,CAAC;YAC1B,eAAe,EAAE,MAAM,CAAC;YACxB,iBAAiB,EAAE,WAAW,EAAE,CAAC;SAClC,CAAC,CAAC;QACH,UAAU,EAAE;YACV,aAAa,EAAE,MAAM,CAAC;YACtB,aAAa,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,eAAe,EAAE,WAAW,EAAE,CAAC;SAChC,CAAC;KACH,CAAC;IAMF;;;;OAIG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAC7B,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/C;;OAEG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;KACpD,GACA,OAAO,CAAC,iBAAiB,CAAC;IA4B7B;;;;OAIG;IACG,qBAAqB,IAAI,OAAO,CACpC,KAAK,CAAC;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC,CACH;CAGF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CAEnE"}