@wave-av/sdk 2.0.3 → 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 (127) hide show
  1. package/CHANGELOG.md +9 -50
  2. package/dist/audience.d.ts +105 -0
  3. package/dist/audience.d.ts.map +1 -0
  4. package/dist/billing-types.d.ts +39 -0
  5. package/dist/billing-types.d.ts.map +1 -0
  6. package/dist/billing-types.js +18 -0
  7. package/dist/billing-types.mjs +0 -0
  8. package/dist/billing.d.ts +69 -0
  9. package/dist/billing.d.ts.map +1 -0
  10. package/dist/billing.js +139 -0
  11. package/dist/billing.mjs +9 -0
  12. package/dist/camera-control.d.ts +55 -0
  13. package/dist/camera-control.d.ts.map +1 -0
  14. package/dist/captions-types.d.ts +119 -0
  15. package/dist/captions-types.d.ts.map +1 -0
  16. package/dist/captions.d.ts +218 -0
  17. package/dist/captions.d.ts.map +1 -0
  18. package/dist/chapters-types.d.ts +87 -0
  19. package/dist/chapters-types.d.ts.map +1 -0
  20. package/dist/chapters.d.ts +207 -0
  21. package/dist/chapters.d.ts.map +1 -0
  22. package/dist/chunk-I3V47I4W.mjs +114 -0
  23. package/dist/client-types.d.ts +59 -0
  24. package/dist/client-types.d.ts.map +1 -0
  25. package/dist/client.d.ts +119 -0
  26. package/dist/client.d.ts.map +1 -0
  27. package/dist/clips-types.d.ts +31 -0
  28. package/dist/clips-types.d.ts.map +1 -0
  29. package/dist/clips.d.ts +230 -0
  30. package/dist/clips.d.ts.map +1 -0
  31. package/dist/cloud-switcher.d.ts +66 -0
  32. package/dist/cloud-switcher.d.ts.map +1 -0
  33. package/dist/collab-types.d.ts +205 -0
  34. package/dist/collab-types.d.ts.map +1 -0
  35. package/dist/collab.d.ts +227 -0
  36. package/dist/collab.d.ts.map +1 -0
  37. package/dist/connect.d.ts +89 -0
  38. package/dist/connect.d.ts.map +1 -0
  39. package/dist/creator.d.ts +110 -0
  40. package/dist/creator.d.ts.map +1 -0
  41. package/dist/desktop.d.ts +96 -0
  42. package/dist/desktop.d.ts.map +1 -0
  43. package/dist/distribution.d.ts +93 -0
  44. package/dist/distribution.d.ts.map +1 -0
  45. package/dist/drm.d.ts +88 -0
  46. package/dist/drm.d.ts.map +1 -0
  47. package/dist/edge.d.ts +113 -0
  48. package/dist/edge.d.ts.map +1 -0
  49. package/dist/editor-types.d.ts +237 -0
  50. package/dist/editor-types.d.ts.map +1 -0
  51. package/dist/editor.d.ts +207 -0
  52. package/dist/editor.d.ts.map +1 -0
  53. package/dist/fleet.d.ts +208 -0
  54. package/dist/fleet.d.ts.map +1 -0
  55. package/dist/ghost.d.ts +214 -0
  56. package/dist/ghost.d.ts.map +1 -0
  57. package/dist/index.d.ts +131 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +114 -0
  60. package/dist/index.mjs +49 -43
  61. package/dist/marketplace.d.ts +91 -0
  62. package/dist/marketplace.d.ts.map +1 -0
  63. package/dist/mesh.d.ts +238 -0
  64. package/dist/mesh.d.ts.map +1 -0
  65. package/dist/notifications.d.ts +83 -0
  66. package/dist/notifications.d.ts.map +1 -0
  67. package/dist/phone-types.d.ts +111 -0
  68. package/dist/phone-types.d.ts.map +1 -0
  69. package/dist/phone.d.ts +235 -0
  70. package/dist/phone.d.ts.map +1 -0
  71. package/dist/pipeline-types.d.ts +188 -0
  72. package/dist/pipeline-types.d.ts.map +1 -0
  73. package/dist/pipeline.d.ts +224 -0
  74. package/dist/pipeline.d.ts.map +1 -0
  75. package/dist/podcast.d.ts +114 -0
  76. package/dist/podcast.d.ts.map +1 -0
  77. package/dist/prism.d.ts +133 -0
  78. package/dist/prism.d.ts.map +1 -0
  79. package/dist/prompter.d.ts +185 -0
  80. package/dist/prompter.d.ts.map +1 -0
  81. package/dist/pulse.d.ts +157 -0
  82. package/dist/pulse.d.ts.map +1 -0
  83. package/dist/qr.d.ts +83 -0
  84. package/dist/qr.d.ts.map +1 -0
  85. package/dist/replay.d.ts +53 -0
  86. package/dist/replay.d.ts.map +1 -0
  87. package/dist/scene-types.d.ts +191 -0
  88. package/dist/scene-types.d.ts.map +1 -0
  89. package/dist/scene.d.ts +214 -0
  90. package/dist/scene.d.ts.map +1 -0
  91. package/dist/search-types.d.ts +211 -0
  92. package/dist/search-types.d.ts.map +1 -0
  93. package/dist/search.d.ts +251 -0
  94. package/dist/search.d.ts.map +1 -0
  95. package/dist/sentiment-types.d.ts +108 -0
  96. package/dist/sentiment-types.d.ts.map +1 -0
  97. package/dist/sentiment.d.ts +247 -0
  98. package/dist/sentiment.d.ts.map +1 -0
  99. package/dist/signage.d.ts +102 -0
  100. package/dist/signage.d.ts.map +1 -0
  101. package/dist/slides.d.ts +69 -0
  102. package/dist/slides.d.ts.map +1 -0
  103. package/dist/studio-ai-types.d.ts +199 -0
  104. package/dist/studio-ai-types.d.ts.map +1 -0
  105. package/dist/studio-ai.d.ts +219 -0
  106. package/dist/studio-ai.d.ts.map +1 -0
  107. package/dist/studio-types.d.ts +268 -0
  108. package/dist/studio-types.d.ts.map +1 -0
  109. package/dist/studio.d.ts +235 -0
  110. package/dist/studio.d.ts.map +1 -0
  111. package/dist/telemetry.d.ts +77 -0
  112. package/dist/telemetry.d.ts.map +1 -0
  113. package/dist/transcribe-types.d.ts +154 -0
  114. package/dist/transcribe-types.d.ts.map +1 -0
  115. package/dist/transcribe.d.ts +219 -0
  116. package/dist/transcribe.d.ts.map +1 -0
  117. package/dist/usb.d.ts +65 -0
  118. package/dist/usb.d.ts.map +1 -0
  119. package/dist/vault.d.ts +122 -0
  120. package/dist/vault.d.ts.map +1 -0
  121. package/dist/voice-types.d.ts +107 -0
  122. package/dist/voice-types.d.ts.map +1 -0
  123. package/dist/voice.d.ts +178 -0
  124. package/dist/voice.d.ts.map +1 -0
  125. package/dist/zoom.d.ts +92 -0
  126. package/dist/zoom.d.ts.map +1 -0
  127. package/package.json +86 -86
@@ -0,0 +1,96 @@
1
+ /**
2
+ * WAVE SDK - Desktop API
3
+ *
4
+ * Desktop Node application management and device enumeration.
5
+ */
6
+ import type { WaveClient } from "./client";
7
+ export interface DesktopNodeInfo {
8
+ id: string;
9
+ name: string;
10
+ version: string;
11
+ os: "macos" | "windows" | "linux";
12
+ arch: "x64" | "arm64";
13
+ cpu_model: string;
14
+ memory_gb: number;
15
+ gpu_model?: string;
16
+ display_count: number;
17
+ usb_devices: LocalUSBDevice[];
18
+ }
19
+ export interface LocalUSBDevice {
20
+ id: string;
21
+ name: string;
22
+ type: "camera" | "microphone" | "capture_card" | "other";
23
+ vendor_id: string;
24
+ product_id: string;
25
+ connected: boolean;
26
+ }
27
+ export interface NodePerformance {
28
+ cpu_usage: number;
29
+ memory_usage: number;
30
+ gpu_usage?: number;
31
+ disk_usage: number;
32
+ network_in_mbps: number;
33
+ network_out_mbps: number;
34
+ active_bridges: number;
35
+ uptime_seconds: number;
36
+ temperature_celsius?: number;
37
+ }
38
+ export interface NodeLog {
39
+ id: string;
40
+ level: "debug" | "info" | "warn" | "error";
41
+ message: string;
42
+ source: string;
43
+ timestamp: string;
44
+ }
45
+ export type UpdateChannel = "stable" | "beta" | "canary";
46
+ export interface NodeConfig {
47
+ auto_start: boolean;
48
+ start_on_boot: boolean;
49
+ update_channel: UpdateChannel;
50
+ max_bridges: number;
51
+ gpu_acceleration: boolean;
52
+ log_level: string;
53
+ }
54
+ /**
55
+ * Desktop Node application management, device enumeration, and updates.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const info = await wave.desktop.getInfo(nodeId);
60
+ * const perf = await wave.desktop.getPerformance(nodeId);
61
+ * await wave.desktop.installUpdate(nodeId);
62
+ * ```
63
+ */
64
+ export declare class DesktopAPI {
65
+ private readonly client;
66
+ private readonly basePath;
67
+ constructor(client: WaveClient);
68
+ getInfo(nodeId: string): Promise<DesktopNodeInfo>;
69
+ getStatus(nodeId: string): Promise<{
70
+ status: string;
71
+ uptime_seconds: number;
72
+ active_bridges: number;
73
+ }>;
74
+ listDevices(nodeId: string): Promise<LocalUSBDevice[]>;
75
+ configure(nodeId: string, config: Partial<NodeConfig>): Promise<NodeConfig>;
76
+ getConfig(nodeId: string): Promise<NodeConfig>;
77
+ getLogs(nodeId: string, params?: {
78
+ level?: string;
79
+ since?: string;
80
+ limit?: number;
81
+ }): Promise<NodeLog[]>;
82
+ getPerformance(nodeId: string): Promise<NodePerformance>;
83
+ checkForUpdate(nodeId: string): Promise<{
84
+ available: boolean;
85
+ version?: string;
86
+ release_notes?: string;
87
+ }>;
88
+ installUpdate(nodeId: string): Promise<{
89
+ status: string;
90
+ }>;
91
+ restart(nodeId: string): Promise<{
92
+ status: string;
93
+ }>;
94
+ }
95
+ export declare function createDesktopAPI(client: WaveClient): DesktopAPI;
96
+ //# sourceMappingURL=desktop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../src/desktop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * WAVE SDK - Distribution API
3
+ *
4
+ * Social media distribution, simulcasting, and scheduled publishing.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type DestinationType = "youtube" | "twitch" | "facebook" | "linkedin" | "twitter" | "tiktok" | "instagram" | "custom_rtmp";
8
+ export type DestinationStatus = "connected" | "disconnected" | "streaming" | "error";
9
+ export interface Destination extends Timestamps {
10
+ id: string;
11
+ organization_id: string;
12
+ name: string;
13
+ type: DestinationType;
14
+ status: DestinationStatus;
15
+ rtmp_url?: string;
16
+ stream_key_ref?: string;
17
+ platform_channel_id?: string;
18
+ auto_start: boolean;
19
+ }
20
+ export interface SimulcastSession {
21
+ id: string;
22
+ stream_id: string;
23
+ destinations: SimulcastTarget[];
24
+ status: "active" | "stopped";
25
+ started_at: string;
26
+ stopped_at?: string;
27
+ }
28
+ export interface SimulcastTarget {
29
+ destination_id: string;
30
+ status: "streaming" | "error" | "pending";
31
+ viewer_count?: number;
32
+ error_message?: string;
33
+ }
34
+ export interface ScheduledPost extends Timestamps {
35
+ id: string;
36
+ organization_id: string;
37
+ title: string;
38
+ description: string;
39
+ platforms: DestinationType[];
40
+ media_url: string;
41
+ scheduled_at: string;
42
+ status: "scheduled" | "publishing" | "published" | "failed";
43
+ published_urls?: Record<string, string>;
44
+ }
45
+ export interface AddDestinationRequest {
46
+ name: string;
47
+ type: DestinationType;
48
+ rtmp_url?: string;
49
+ stream_key_ref?: string;
50
+ platform_channel_id?: string;
51
+ auto_start?: boolean;
52
+ }
53
+ export interface ListDestinationsParams extends PaginationParams {
54
+ type?: DestinationType;
55
+ status?: DestinationStatus;
56
+ }
57
+ /**
58
+ * Social media simulcasting and scheduled content publishing.
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * await wave.distribution.addDestination({ name: "YouTube", type: "youtube", auto_start: true });
63
+ * await wave.distribution.startSimulcast(streamId, [destId1, destId2]);
64
+ * ```
65
+ */
66
+ export declare class DistributionAPI {
67
+ private readonly client;
68
+ private readonly basePath;
69
+ constructor(client: WaveClient);
70
+ listDestinations(params?: ListDestinationsParams): Promise<PaginatedResponse<Destination>>;
71
+ getDestination(destId: string): Promise<Destination>;
72
+ addDestination(request: AddDestinationRequest): Promise<Destination>;
73
+ updateDestination(destId: string, updates: Partial<AddDestinationRequest>): Promise<Destination>;
74
+ removeDestination(destId: string): Promise<void>;
75
+ startSimulcast(streamId: string, destinationIds: string[]): Promise<SimulcastSession>;
76
+ stopSimulcast(streamId: string): Promise<SimulcastSession>;
77
+ getSimulcastStatus(streamId: string): Promise<SimulcastSession>;
78
+ schedulePost(request: {
79
+ title: string;
80
+ description: string;
81
+ platforms: DestinationType[];
82
+ media_url: string;
83
+ scheduled_at: string;
84
+ }): Promise<ScheduledPost>;
85
+ listScheduledPosts(params?: PaginationParams): Promise<PaginatedResponse<ScheduledPost>>;
86
+ cancelScheduledPost(postId: string): Promise<void>;
87
+ getDistributionAnalytics(params?: {
88
+ time_range?: string;
89
+ destination_id?: string;
90
+ }): Promise<Record<string, unknown>>;
91
+ }
92
+ export declare function createDistributionAPI(client: WaveClient): DistributionAPI;
93
+ //# sourceMappingURL=distribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distribution.d.ts","sourceRoot":"","sources":["../src/distribution.ts"],"names":[],"mappings":"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"}
package/dist/drm.d.ts ADDED
@@ -0,0 +1,88 @@
1
+ /**
2
+ * WAVE SDK - DRM API
3
+ *
4
+ * Digital Rights Management: content protection with Widevine, FairPlay, and PlayReady.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type DRMProvider = "widevine" | "fairplay" | "playready";
8
+ export type LicenseStatus = "active" | "expired" | "revoked";
9
+ export interface DRMPolicy extends Timestamps {
10
+ id: string;
11
+ organization_id: string;
12
+ name: string;
13
+ providers: DRMProvider[];
14
+ allow_offline: boolean;
15
+ offline_duration_seconds?: number;
16
+ max_devices: number;
17
+ output_protection: "none" | "hdcp_1" | "hdcp_2";
18
+ security_level: "sw" | "hw";
19
+ persistent_license: boolean;
20
+ }
21
+ export interface DRMLicense extends Timestamps {
22
+ id: string;
23
+ policy_id: string;
24
+ asset_id: string;
25
+ user_id: string;
26
+ provider: DRMProvider;
27
+ status: LicenseStatus;
28
+ device_id?: string;
29
+ expires_at?: string;
30
+ playback_count: number;
31
+ }
32
+ export interface DRMCertificate {
33
+ provider: DRMProvider;
34
+ certificate: string;
35
+ expires_at: string;
36
+ }
37
+ export interface CreatePolicyRequest {
38
+ name: string;
39
+ providers: DRMProvider[];
40
+ allow_offline?: boolean;
41
+ offline_duration_seconds?: number;
42
+ max_devices?: number;
43
+ output_protection?: "none" | "hdcp_1" | "hdcp_2";
44
+ security_level?: "sw" | "hw";
45
+ persistent_license?: boolean;
46
+ }
47
+ export interface ListPoliciesParams extends PaginationParams {
48
+ provider?: DRMProvider;
49
+ }
50
+ /**
51
+ * Digital Rights Management for content protection with Widevine, FairPlay, and PlayReady.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const policy = await wave.drm.createPolicy({ name: 'Premium', providers: ['widevine', 'fairplay'], max_devices: 3 });
56
+ * const cert = await wave.drm.getCertificate('fairplay');
57
+ * const license = await wave.drm.issueLicense(assetId, policyId);
58
+ * ```
59
+ */
60
+ export declare class DrmAPI {
61
+ private readonly client;
62
+ private readonly basePath;
63
+ constructor(client: WaveClient);
64
+ /** Create a DRM policy. */
65
+ createPolicy(request: CreatePolicyRequest): Promise<DRMPolicy>;
66
+ /** Get a DRM policy by ID. */
67
+ getPolicy(policyId: string): Promise<DRMPolicy>;
68
+ /** List DRM policies. */
69
+ listPolicies(params?: ListPoliciesParams): Promise<PaginatedResponse<DRMPolicy>>;
70
+ /** Update a DRM policy. */
71
+ updatePolicy(policyId: string, updates: Partial<CreatePolicyRequest>): Promise<DRMPolicy>;
72
+ /** Delete a DRM policy. */
73
+ removePolicy(policyId: string): Promise<void>;
74
+ /** Get a DRM certificate for a provider. */
75
+ getCertificate(provider: DRMProvider): Promise<DRMCertificate>;
76
+ /** Issue a license for an asset. */
77
+ issueLicense(assetId: string, policyId: string, deviceId?: string): Promise<DRMLicense>;
78
+ /** Revoke a license. */
79
+ revokeLicense(licenseId: string): Promise<DRMLicense>;
80
+ /** List licenses for an asset or user. */
81
+ listLicenses(params?: {
82
+ asset_id?: string;
83
+ user_id?: string;
84
+ status?: LicenseStatus;
85
+ } & PaginationParams): Promise<PaginatedResponse<DRMLicense>>;
86
+ }
87
+ export declare function createDrmAPI(client: WaveClient): DrmAPI;
88
+ //# sourceMappingURL=drm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drm.d.ts","sourceRoot":"","sources":["../src/drm.ts"],"names":[],"mappings":"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"}
package/dist/edge.d.ts ADDED
@@ -0,0 +1,113 @@
1
+ /**
2
+ * WAVE SDK - Edge API
3
+ *
4
+ * Edge computing, CDN operations, and worker deployment.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type EdgeNodeStatus = "active" | "draining" | "offline" | "updating";
8
+ export interface EdgeNode extends Timestamps {
9
+ id: string;
10
+ name: string;
11
+ region: string;
12
+ provider: "cloudflare" | "aws" | "gcp";
13
+ status: EdgeNodeStatus;
14
+ latency_ms: number;
15
+ capacity_percent: number;
16
+ active_workers: number;
17
+ bandwidth_mbps: number;
18
+ }
19
+ export interface EdgeWorker extends Timestamps {
20
+ id: string;
21
+ name: string;
22
+ node_id: string;
23
+ status: "deployed" | "running" | "stopped" | "error";
24
+ runtime: "v8" | "wasm" | "node";
25
+ script_size_bytes: number;
26
+ memory_limit_mb: number;
27
+ invocations: number;
28
+ last_deployed_at: string;
29
+ }
30
+ export interface WorkerConfig {
31
+ name: string;
32
+ runtime: "v8" | "wasm" | "node";
33
+ script: string;
34
+ routes: string[];
35
+ environment?: Record<string, string>;
36
+ memory_limit_mb?: number;
37
+ }
38
+ export interface EdgeMetrics {
39
+ node_id: string;
40
+ requests_per_second: number;
41
+ bandwidth_mbps: number;
42
+ cache_hit_ratio: number;
43
+ p50_latency_ms: number;
44
+ p95_latency_ms: number;
45
+ p99_latency_ms: number;
46
+ error_rate: number;
47
+ timestamp: string;
48
+ }
49
+ export interface CDNPop {
50
+ id: string;
51
+ location: string;
52
+ provider: string;
53
+ status: "active" | "draining" | "offline";
54
+ cache_size_gb: number;
55
+ hit_ratio: number;
56
+ connections: number;
57
+ }
58
+ export interface RoutingRule {
59
+ id: string;
60
+ pattern: string;
61
+ target: string;
62
+ priority: number;
63
+ weight?: number;
64
+ region_affinity?: string;
65
+ }
66
+ export interface DeployWorkerRequest {
67
+ name: string;
68
+ runtime: "v8" | "wasm" | "node";
69
+ script: string;
70
+ routes: string[];
71
+ environment?: Record<string, string>;
72
+ memory_limit_mb?: number;
73
+ }
74
+ export interface ListEdgeNodesParams extends PaginationParams {
75
+ region?: string;
76
+ status?: EdgeNodeStatus;
77
+ provider?: string;
78
+ }
79
+ /**
80
+ * Edge computing, CDN operations, and worker deployment.
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const nodes = await wave.edge.listNodes({ region: 'us-west' });
85
+ * await wave.edge.deployWorker({ name: 'transform', runtime: 'v8', script: '...', routes: ['/api/*'] });
86
+ * await wave.edge.purgeCache(['/assets/*']);
87
+ * ```
88
+ */
89
+ export declare class EdgeAPI {
90
+ private readonly client;
91
+ private readonly basePath;
92
+ constructor(client: WaveClient);
93
+ listNodes(params?: ListEdgeNodesParams): Promise<PaginatedResponse<EdgeNode>>;
94
+ getNode(nodeId: string): Promise<EdgeNode>;
95
+ getNodeMetrics(nodeId: string): Promise<EdgeMetrics>;
96
+ deployWorker(request: DeployWorkerRequest): Promise<EdgeWorker>;
97
+ getWorker(workerId: string): Promise<EdgeWorker>;
98
+ updateWorker(workerId: string, config: Partial<WorkerConfig>): Promise<EdgeWorker>;
99
+ removeWorker(workerId: string): Promise<void>;
100
+ listWorkers(params?: PaginationParams): Promise<PaginatedResponse<EdgeWorker>>;
101
+ startWorker(workerId: string): Promise<EdgeWorker>;
102
+ stopWorker(workerId: string): Promise<EdgeWorker>;
103
+ listPops(): Promise<CDNPop[]>;
104
+ purgeCache(patterns: string[]): Promise<{
105
+ purged: number;
106
+ }>;
107
+ getRoutingRules(): Promise<RoutingRule[]>;
108
+ setRoutingRule(rule: Omit<RoutingRule, "id">): Promise<RoutingRule>;
109
+ removeRoutingRule(ruleId: string): Promise<void>;
110
+ getLatencyMap(): Promise<Record<string, number>>;
111
+ }
112
+ export declare function createEdgeAPI(client: WaveClient): EdgeAPI;
113
+ //# sourceMappingURL=edge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * WAVE SDK - Editor API
3
+ *
4
+ * Video editing capabilities including cuts, transitions, overlays, and effects.
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 { PaginationParams, Timestamps, Metadata } from './client';
10
+ /**
11
+ * Project status
12
+ */
13
+ export type ProjectStatus = 'draft' | 'rendering' | 'ready' | 'failed' | 'archived';
14
+ /**
15
+ * Track type
16
+ */
17
+ export type TrackType = 'video' | 'audio' | 'text' | 'image' | 'effect';
18
+ /**
19
+ * Transition type
20
+ */
21
+ export type TransitionType = 'cut' | 'fade' | 'dissolve' | 'wipe' | 'slide' | 'zoom';
22
+ /**
23
+ * Effect type
24
+ */
25
+ export type EffectType = 'blur' | 'brightness' | 'contrast' | 'saturation' | 'color_grade' | 'noise_reduction' | 'stabilization' | 'speed' | 'reverse' | 'custom';
26
+ /**
27
+ * Timeline element
28
+ */
29
+ export interface TimelineElement {
30
+ id: string;
31
+ track_id: string;
32
+ type: 'clip' | 'text' | 'image' | 'audio' | 'effect';
33
+ source_id?: string;
34
+ start_time: number;
35
+ duration: number;
36
+ in_point?: number;
37
+ out_point?: number;
38
+ properties?: Record<string, unknown>;
39
+ }
40
+ /**
41
+ * Track definition
42
+ */
43
+ export interface Track {
44
+ id: string;
45
+ name: string;
46
+ type: TrackType;
47
+ order: number;
48
+ locked: boolean;
49
+ muted: boolean;
50
+ visible: boolean;
51
+ elements: TimelineElement[];
52
+ }
53
+ /**
54
+ * Transition definition
55
+ */
56
+ export interface Transition {
57
+ id: string;
58
+ type: TransitionType;
59
+ from_element_id: string;
60
+ to_element_id: string;
61
+ duration: number;
62
+ properties?: Record<string, unknown>;
63
+ }
64
+ /**
65
+ * Effect definition
66
+ */
67
+ export interface Effect {
68
+ id: string;
69
+ type: EffectType;
70
+ element_id: string;
71
+ start_time: number;
72
+ end_time: number;
73
+ keyframes?: Keyframe[];
74
+ properties: Record<string, unknown>;
75
+ }
76
+ /**
77
+ * Keyframe for animation
78
+ */
79
+ export interface Keyframe {
80
+ time: number;
81
+ value: number | string | Record<string, unknown>;
82
+ easing?: 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'bezier';
83
+ }
84
+ /**
85
+ * Text overlay
86
+ */
87
+ export interface TextOverlay {
88
+ id: string;
89
+ content: string;
90
+ font_family: string;
91
+ font_size: number;
92
+ font_weight?: number;
93
+ color: string;
94
+ background_color?: string;
95
+ position: {
96
+ x: number;
97
+ y: number;
98
+ };
99
+ alignment?: 'left' | 'center' | 'right';
100
+ animation?: TextAnimation;
101
+ }
102
+ /**
103
+ * Text animation
104
+ */
105
+ export interface TextAnimation {
106
+ type: 'fade' | 'slide' | 'typewriter' | 'bounce' | 'none';
107
+ duration: number;
108
+ delay?: number;
109
+ }
110
+ /**
111
+ * Editor project
112
+ */
113
+ export interface EditorProject extends Timestamps {
114
+ id: string;
115
+ organization_id: string;
116
+ name: string;
117
+ description?: string;
118
+ status: ProjectStatus;
119
+ width: number;
120
+ height: number;
121
+ frame_rate: number;
122
+ duration: number;
123
+ tracks: Track[];
124
+ transitions: Transition[];
125
+ effects: Effect[];
126
+ thumbnail_url?: string;
127
+ output_url?: string;
128
+ metadata?: Metadata;
129
+ version: number;
130
+ }
131
+ /**
132
+ * Create project request
133
+ */
134
+ export interface CreateProjectRequest {
135
+ name: string;
136
+ description?: string;
137
+ width?: number;
138
+ height?: number;
139
+ frame_rate?: number;
140
+ template_id?: string;
141
+ metadata?: Metadata;
142
+ }
143
+ /**
144
+ * Update project request
145
+ */
146
+ export interface UpdateProjectRequest {
147
+ name?: string;
148
+ description?: string;
149
+ metadata?: Metadata;
150
+ }
151
+ /**
152
+ * Add element request
153
+ */
154
+ export interface AddElementRequest {
155
+ track_id: string;
156
+ type: 'clip' | 'text' | 'image' | 'audio';
157
+ source_id?: string;
158
+ start_time: number;
159
+ duration?: number;
160
+ properties?: Record<string, unknown>;
161
+ }
162
+ /**
163
+ * Render options
164
+ */
165
+ export interface RenderOptions {
166
+ format?: 'mp4' | 'webm' | 'mov' | 'gif';
167
+ quality?: 'low' | 'medium' | 'high' | 'source';
168
+ resolution?: string;
169
+ bitrate?: number;
170
+ audio_codec?: 'aac' | 'mp3' | 'opus';
171
+ audio_bitrate?: number;
172
+ webhook_url?: string;
173
+ }
174
+ /**
175
+ * Render job
176
+ */
177
+ export interface RenderJob extends Timestamps {
178
+ id: string;
179
+ project_id: string;
180
+ status: 'pending' | 'rendering' | 'ready' | 'failed';
181
+ progress: number;
182
+ output_url?: string;
183
+ file_size?: number;
184
+ duration?: number;
185
+ error?: string;
186
+ }
187
+ /**
188
+ * List projects params
189
+ */
190
+ export interface ListProjectsParams extends PaginationParams {
191
+ status?: ProjectStatus;
192
+ created_after?: string;
193
+ created_before?: string;
194
+ order_by?: 'created_at' | 'updated_at' | 'name';
195
+ order?: 'asc' | 'desc';
196
+ }
197
+ /**
198
+ * Editor API client
199
+ *
200
+ * All operations require appropriate permissions. Authorization is enforced
201
+ * server-side - the API returns 403 if the authenticated user lacks access.
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * import { WaveClient } from '@wave/sdk';
206
+ * import { EditorAPI } from '@wave/sdk/editor';
207
+ *
208
+ * const client = new WaveClient({ apiKey: 'your-api-key' });
209
+ * const editor = new EditorAPI(client);
210
+ *
211
+ * // Create a new project
212
+ * const project = await editor.createProject({
213
+ * name: 'My Video',
214
+ * width: 1920,
215
+ * height: 1080,
216
+ * frame_rate: 30,
217
+ * });
218
+ *
219
+ * // Add a video track
220
+ * const track = await editor.addTrack(project.id, {
221
+ * name: 'Main Video',
222
+ * type: 'video',
223
+ * });
224
+ *
225
+ * // Add a clip to the track
226
+ * await editor.addElement(project.id, {
227
+ * track_id: track.id,
228
+ * type: 'clip',
229
+ * source_id: 'clip_123',
230
+ * start_time: 0,
231
+ * });
232
+ *
233
+ * // Render the project
234
+ * const job = await editor.render(project.id, { format: 'mp4' });
235
+ * ```
236
+ */
237
+ //# sourceMappingURL=editor-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-types.d.ts","sourceRoot":"","sources":["../src/editor-types.ts"],"names":[],"mappings":"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"}