@wave-av/sdk 2.0.4 → 2.0.5

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 +119 -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 @@
1
+ {"version":3,"file":"prism.d.ts","sourceRoot":"","sources":["../src/prism.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * WAVE SDK - Prompter API
3
+ *
4
+ * AI-powered teleprompter for live streaming. Manage scripts,
5
+ * generate content via AI, track delivery analytics, and sync
6
+ * across devices.
7
+ *
8
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
9
+ * The API will return 403 Forbidden if the user lacks required permissions.
10
+ */
11
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps, Metadata } from './client';
12
+ export type PrompterState = 'idle' | 'countdown' | 'active' | 'paused' | 'complete';
13
+ export type ScriptTone = 'casual' | 'professional' | 'educational' | 'motivational' | 'humorous';
14
+ export type SupportedLanguage = 'en' | 'es' | 'fr' | 'de' | 'pt' | 'ja' | 'ko' | 'zh' | 'ar' | 'hi';
15
+ export type BlockType = 'paragraph' | 'heading' | 'cue' | 'note' | 'divider';
16
+ export interface ScriptBlock {
17
+ id: string;
18
+ type: BlockType;
19
+ content: string;
20
+ metadata?: Metadata;
21
+ }
22
+ export interface ScriptContent {
23
+ blocks: ScriptBlock[];
24
+ }
25
+ export interface Script extends Timestamps {
26
+ id: string;
27
+ organization_id: string;
28
+ user_id: string;
29
+ title: string;
30
+ content: ScriptContent;
31
+ language: SupportedLanguage;
32
+ word_count: number;
33
+ is_template: boolean;
34
+ tags: string[];
35
+ metadata: Metadata;
36
+ }
37
+ export interface ScriptVersion {
38
+ id: string;
39
+ script_id: string;
40
+ content: ScriptContent;
41
+ version_number: number;
42
+ created_by: string;
43
+ diff_summary: string | null;
44
+ created_at: string;
45
+ }
46
+ export interface DeliverySession extends Timestamps {
47
+ id: string;
48
+ script_id: string;
49
+ stream_id: string | null;
50
+ user_id: string;
51
+ organization_id: string;
52
+ status: PrompterState;
53
+ started_at: string | null;
54
+ ended_at: string | null;
55
+ metadata: Metadata;
56
+ }
57
+ export interface DeliveryAnalytics {
58
+ id: string;
59
+ session_id: string;
60
+ wpm_avg: number | null;
61
+ wpm_segments: WpmSegment[];
62
+ filler_count: number;
63
+ filler_words: FillerWordEntry[];
64
+ duration_seconds: number | null;
65
+ completion_percent: number;
66
+ engagement_data: Metadata;
67
+ created_at: string;
68
+ }
69
+ export interface WpmSegment {
70
+ paragraphIndex: number;
71
+ wpm: number;
72
+ startTime: number;
73
+ endTime: number;
74
+ }
75
+ export interface FillerWordEntry {
76
+ word: string;
77
+ timestamp: number;
78
+ confidence: number;
79
+ }
80
+ export interface CreateScriptInput {
81
+ title: string;
82
+ content: ScriptContent;
83
+ language?: SupportedLanguage;
84
+ tags?: string[];
85
+ metadata?: Metadata;
86
+ }
87
+ export interface UpdateScriptInput {
88
+ title?: string;
89
+ content?: ScriptContent;
90
+ language?: SupportedLanguage;
91
+ tags?: string[];
92
+ metadata?: Metadata;
93
+ }
94
+ export interface GenerateScriptInput {
95
+ mode: 'topic' | 'outline' | 'improve';
96
+ topic?: string;
97
+ bullets?: string[];
98
+ existingContent?: string;
99
+ instructions?: string;
100
+ durationMinutes?: number;
101
+ tone?: ScriptTone;
102
+ }
103
+ export interface StartSessionInput {
104
+ scriptId: string;
105
+ streamId?: string;
106
+ countdownSeconds?: number;
107
+ }
108
+ export interface ListScriptsParams extends PaginationParams {
109
+ search?: string;
110
+ tags?: string[];
111
+ language?: SupportedLanguage;
112
+ includeTemplates?: boolean;
113
+ }
114
+ /**
115
+ * Create a prompter API instance from a WAVE client.
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * import { createClient } from '@wave/sdk';
120
+ * import { createPrompterApi } from '@wave/sdk/prompter';
121
+ *
122
+ * const wave = createClient({ apiKey: 'wave_...' });
123
+ * const prompter = createPrompterApi(wave);
124
+ *
125
+ * // Create a script
126
+ * const script = await prompter.scripts.create({
127
+ * title: 'Product Demo',
128
+ * content: { blocks: [{ id: '1', type: 'paragraph', content: 'Hello everyone...' }] },
129
+ * });
130
+ *
131
+ * // Generate a script via AI
132
+ * const generated = await prompter.generate({
133
+ * mode: 'topic',
134
+ * topic: 'Introduction to Kubernetes',
135
+ * durationMinutes: 5,
136
+ * tone: 'professional',
137
+ * });
138
+ *
139
+ * // Start a delivery session
140
+ * const session = await prompter.sessions.start({
141
+ * scriptId: script.id,
142
+ * streamId: 'stream_abc123',
143
+ * });
144
+ *
145
+ * // Get analytics after session
146
+ * const analytics = await prompter.sessions.analytics(session.id);
147
+ * ```
148
+ */
149
+ export declare function createPrompterApi(client: WaveClient): {
150
+ scripts: {
151
+ list(params?: ListScriptsParams): Promise<PaginatedResponse<Script>>;
152
+ get(scriptId: string): Promise<Script>;
153
+ create(input: CreateScriptInput): Promise<Script>;
154
+ update(scriptId: string, input: UpdateScriptInput): Promise<Script>;
155
+ delete(scriptId: string): Promise<void>;
156
+ versions(scriptId: string): Promise<ScriptVersion[]>;
157
+ restoreVersion(scriptId: string, versionNumber: number): Promise<Script>;
158
+ };
159
+ generate(input: GenerateScriptInput): Promise<ScriptContent>;
160
+ translate(scriptId: string, targetLanguage: SupportedLanguage): Promise<{
161
+ translatedContent: ScriptContent;
162
+ wordCount: number;
163
+ }>;
164
+ sessions: {
165
+ start(input: StartSessionInput): Promise<DeliverySession>;
166
+ get(sessionId: string): Promise<DeliverySession>;
167
+ pause(sessionId: string): Promise<DeliverySession>;
168
+ resume(sessionId: string): Promise<DeliverySession>;
169
+ end(sessionId: string): Promise<DeliverySession>;
170
+ analytics(sessionId: string): Promise<DeliveryAnalytics>;
171
+ list(params?: PaginationParams & {
172
+ scriptId?: string;
173
+ }): Promise<PaginatedResponse<DeliverySession>>;
174
+ };
175
+ templates: {
176
+ search(params?: ListScriptsParams): Promise<PaginatedResponse<Script>>;
177
+ use(templateId: string): Promise<{
178
+ scriptId: string;
179
+ }>;
180
+ };
181
+ usage: {
182
+ summary(periodStart: string, periodEnd: string): Promise<Record<string, number>>;
183
+ };
184
+ };
185
+ //# sourceMappingURL=prompter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompter.d.ts","sourceRoot":"","sources":["../src/prompter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * WAVE SDK - Pulse Analytics API
3
+ *
4
+ * Analytics, metrics, and business intelligence for streams and viewers.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type TimeRange = "1h" | "6h" | "24h" | "7d" | "30d" | "90d" | "custom";
8
+ export type Granularity = "minute" | "hour" | "day" | "week" | "month";
9
+ export type MetricType = "viewers" | "streams" | "bandwidth" | "revenue" | "engagement" | "quality";
10
+ export interface QueryParams {
11
+ time_range: TimeRange;
12
+ start_date?: string;
13
+ end_date?: string;
14
+ granularity?: Granularity;
15
+ stream_id?: string;
16
+ group_by?: string;
17
+ [key: string]: string | number | boolean | undefined;
18
+ }
19
+ export interface StreamAnalytics {
20
+ stream_id: string;
21
+ title: string;
22
+ total_viewers: number;
23
+ peak_viewers: number;
24
+ average_duration_seconds: number;
25
+ total_watch_time_seconds: number;
26
+ unique_viewers: number;
27
+ average_bitrate_kbps: number;
28
+ buffering_ratio: number;
29
+ quality_score: number;
30
+ started_at: string;
31
+ ended_at?: string;
32
+ }
33
+ export interface ViewerAnalytics {
34
+ total_viewers: number;
35
+ unique_viewers: number;
36
+ peak_concurrent: number;
37
+ average_session_duration: number;
38
+ bounce_rate: number;
39
+ geography: GeoBreakdown[];
40
+ devices: DeviceBreakdown[];
41
+ protocols: ProtocolBreakdown[];
42
+ }
43
+ export interface GeoBreakdown {
44
+ country: string;
45
+ region?: string;
46
+ viewers: number;
47
+ percentage: number;
48
+ }
49
+ export interface DeviceBreakdown {
50
+ type: "desktop" | "mobile" | "tablet" | "tv" | "other";
51
+ viewers: number;
52
+ percentage: number;
53
+ }
54
+ export interface ProtocolBreakdown {
55
+ protocol: string;
56
+ viewers: number;
57
+ percentage: number;
58
+ }
59
+ export interface QualityMetrics {
60
+ average_bitrate_kbps: number;
61
+ buffering_ratio: number;
62
+ startup_time_ms: number;
63
+ rebuffering_events: number;
64
+ resolution_switches: number;
65
+ error_rate: number;
66
+ cdn_cache_hit_ratio: number;
67
+ }
68
+ export interface EngagementMetrics {
69
+ average_watch_time_seconds: number;
70
+ chat_messages: number;
71
+ reactions: number;
72
+ polls_participated: number;
73
+ peak_engagement_score: number;
74
+ drop_off_points: {
75
+ time_seconds: number;
76
+ drop_rate: number;
77
+ }[];
78
+ }
79
+ export interface RevenueMetrics {
80
+ total_revenue_cents: number;
81
+ subscription_revenue_cents: number;
82
+ tip_revenue_cents: number;
83
+ ad_revenue_cents: number;
84
+ mrr_cents: number;
85
+ churn_rate: number;
86
+ arpu_cents: number;
87
+ new_subscribers: number;
88
+ cancelled_subscribers: number;
89
+ }
90
+ export interface TimeSeriesPoint {
91
+ timestamp: string;
92
+ value: number;
93
+ }
94
+ export interface AnalyticsReport extends Timestamps {
95
+ id: string;
96
+ organization_id: string;
97
+ name: string;
98
+ type: string;
99
+ status: "generating" | "ready" | "failed";
100
+ time_range: TimeRange;
101
+ download_url?: string;
102
+ }
103
+ export interface Dashboard extends Timestamps {
104
+ id: string;
105
+ organization_id: string;
106
+ name: string;
107
+ widgets: DashboardWidget[];
108
+ is_default: boolean;
109
+ }
110
+ export interface DashboardWidget {
111
+ id: string;
112
+ type: "chart" | "number" | "table" | "map";
113
+ metric: MetricType;
114
+ config: Record<string, unknown>;
115
+ }
116
+ export interface CreateReportRequest {
117
+ name: string;
118
+ type: string;
119
+ time_range: TimeRange;
120
+ format?: "pdf" | "csv" | "json";
121
+ }
122
+ export interface CreateDashboardRequest {
123
+ name: string;
124
+ widgets?: DashboardWidget[];
125
+ is_default?: boolean;
126
+ }
127
+ /**
128
+ * Analytics and business intelligence for streams, viewers, quality, and revenue.
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * const viewers = await wave.pulse.getViewerAnalytics({ time_range: '7d' });
133
+ * const revenue = await wave.pulse.getRevenueMetrics({ time_range: '30d' });
134
+ * const timeseries = await wave.pulse.getTimeSeries('viewers', { time_range: '24h', granularity: 'hour' });
135
+ * ```
136
+ */
137
+ export declare class PulseAPI {
138
+ private readonly client;
139
+ private readonly basePath;
140
+ constructor(client: WaveClient);
141
+ getStreamAnalytics(streamId: string, params?: QueryParams): Promise<StreamAnalytics>;
142
+ getViewerAnalytics(params?: QueryParams): Promise<ViewerAnalytics>;
143
+ getQualityMetrics(params?: QueryParams): Promise<QualityMetrics>;
144
+ getEngagementMetrics(params?: QueryParams): Promise<EngagementMetrics>;
145
+ getRevenueMetrics(params?: QueryParams): Promise<RevenueMetrics>;
146
+ getTimeSeries(metric: MetricType, params?: QueryParams): Promise<TimeSeriesPoint[]>;
147
+ createReport(request: CreateReportRequest): Promise<AnalyticsReport>;
148
+ getReport(reportId: string): Promise<AnalyticsReport>;
149
+ listReports(params?: PaginationParams): Promise<PaginatedResponse<AnalyticsReport>>;
150
+ listDashboards(params?: PaginationParams): Promise<PaginatedResponse<Dashboard>>;
151
+ createDashboard(request: CreateDashboardRequest): Promise<Dashboard>;
152
+ getDashboard(dashboardId: string): Promise<Dashboard>;
153
+ updateDashboard(dashboardId: string, updates: Partial<CreateDashboardRequest>): Promise<Dashboard>;
154
+ removeDashboard(dashboardId: string): Promise<void>;
155
+ }
156
+ export declare function createPulseAPI(client: WaveClient): PulseAPI;
157
+ //# sourceMappingURL=pulse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../src/pulse.ts"],"names":[],"mappings":"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"}
package/dist/qr.d.ts ADDED
@@ -0,0 +1,83 @@
1
+ /**
2
+ * WAVE SDK - QR API
3
+ *
4
+ * Dynamic QR code generation, tracking, and analytics.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type QRType = "url" | "stream" | "vcard" | "wifi" | "text" | "dynamic";
8
+ export interface QRCode extends Timestamps {
9
+ id: string;
10
+ organization_id: string;
11
+ type: QRType;
12
+ content: string;
13
+ short_url: string;
14
+ image_url: string;
15
+ scan_count: number;
16
+ status: "active" | "paused" | "expired";
17
+ style: QRStyle;
18
+ expires_at?: string;
19
+ }
20
+ export interface QRStyle {
21
+ foreground_color?: string;
22
+ background_color?: string;
23
+ logo_url?: string;
24
+ error_correction: "L" | "M" | "Q" | "H";
25
+ size_px?: number;
26
+ }
27
+ export interface QRAnalytics {
28
+ qr_id: string;
29
+ total_scans: number;
30
+ unique_scans: number;
31
+ scans_by_day: {
32
+ date: string;
33
+ count: number;
34
+ }[];
35
+ top_locations: {
36
+ country: string;
37
+ count: number;
38
+ }[];
39
+ devices: {
40
+ type: string;
41
+ count: number;
42
+ }[];
43
+ }
44
+ export interface CreateQRRequest {
45
+ type: QRType;
46
+ content: string;
47
+ style?: Partial<QRStyle>;
48
+ expires_at?: string;
49
+ }
50
+ /**
51
+ * Dynamic QR code generation, tracking, and scan analytics.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const qr = await wave.qr.create({ type: "url", content: "https://wave.online/stream/123" });
56
+ * const analytics = await wave.qr.getAnalytics(qr.id);
57
+ * ```
58
+ */
59
+ export declare class QrAPI {
60
+ private readonly client;
61
+ private readonly basePath;
62
+ constructor(client: WaveClient);
63
+ create(request: CreateQRRequest): Promise<QRCode>;
64
+ get(qrId: string): Promise<QRCode>;
65
+ update(qrId: string, updates: {
66
+ content?: string;
67
+ style?: Partial<QRStyle>;
68
+ status?: string;
69
+ expires_at?: string;
70
+ }): Promise<QRCode>;
71
+ remove(qrId: string): Promise<void>;
72
+ list(params?: PaginationParams): Promise<PaginatedResponse<QRCode>>;
73
+ getAnalytics(qrId: string, params?: {
74
+ start_date?: string;
75
+ end_date?: string;
76
+ }): Promise<QRAnalytics>;
77
+ createBatch(items: CreateQRRequest[]): Promise<QRCode[]>;
78
+ getImage(qrId: string, format?: "png" | "svg" | "pdf", size?: number): Promise<{
79
+ url: string;
80
+ }>;
81
+ }
82
+ export declare function createQrAPI(client: WaveClient): QrAPI;
83
+ //# sourceMappingURL=qr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../src/qr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * WAVE Replay Engine SDK
3
+ *
4
+ * Mark POIs, review replays, export clips to social media.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import type { WaveClient } from './client';
9
+ export interface ReplaySession {
10
+ readonly id: string;
11
+ readonly switcherId: string | null;
12
+ readonly status: 'recording' | 'reviewing' | 'exporting' | 'completed';
13
+ readonly startedAt: string;
14
+ readonly endedAt: string | null;
15
+ }
16
+ export interface PointOfInterest {
17
+ readonly id: string;
18
+ readonly sessionId: string;
19
+ readonly timecode: string;
20
+ readonly label: string | null;
21
+ readonly createdAt: string;
22
+ }
23
+ export interface ReplayClip {
24
+ readonly id: string;
25
+ readonly sessionId: string;
26
+ readonly poiId: string;
27
+ readonly speed: number;
28
+ readonly exportStatus: 'pending' | 'processing' | 'completed' | 'failed';
29
+ readonly exportUrls: Record<string, string>;
30
+ }
31
+ export interface ExportClipOptions {
32
+ readonly poiId: string;
33
+ readonly cameraId?: string;
34
+ readonly speed?: number;
35
+ readonly orientation?: 'landscape' | 'vertical';
36
+ readonly stingerId?: string | null;
37
+ readonly platforms?: readonly ('tiktok' | 'youtube_shorts' | 'instagram_reels' | 'twitter')[];
38
+ readonly addCaptions?: boolean;
39
+ }
40
+ export declare class ReplayAPI {
41
+ private readonly client;
42
+ private readonly basePath;
43
+ constructor(client: WaveClient);
44
+ createSession(switcherId?: string): Promise<ReplaySession>;
45
+ getSession(sessionId: string): Promise<ReplaySession>;
46
+ markPOI(sessionId: string, label?: string): Promise<PointOfInterest>;
47
+ listPOIs(sessionId: string): Promise<PointOfInterest[]>;
48
+ exportClip(sessionId: string, options: ExportClipOptions): Promise<ReplayClip>;
49
+ getClip(sessionId: string, clipId: string): Promise<ReplayClip>;
50
+ listClips(sessionId: string): Promise<ReplayClip[]>;
51
+ }
52
+ export declare function createReplayAPI(client: WaveClient): ReplayAPI;
53
+ //# sourceMappingURL=replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,SAAS,CAAC,EAAE,CAAC;IAC9F,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,MAAM,EAAE,UAAU;IAIxB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIpE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIvD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAI9E,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI/D,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAG1D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAE7D"}