@camstack/types 0.1.34 → 0.1.36

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 (112) hide show
  1. package/dist/capabilities/addon-widgets-source.cap.d.ts +73 -5
  2. package/dist/capabilities/addon-widgets-source.cap.d.ts.map +1 -1
  3. package/dist/capabilities/addon-widgets.cap.d.ts +22 -4
  4. package/dist/capabilities/addon-widgets.cap.d.ts.map +1 -1
  5. package/dist/capabilities/addons.cap.d.ts +21 -0
  6. package/dist/capabilities/addons.cap.d.ts.map +1 -1
  7. package/dist/capabilities/audio-analysis.cap.d.ts +7 -4
  8. package/dist/capabilities/audio-analysis.cap.d.ts.map +1 -1
  9. package/dist/capabilities/camera-streams.cap.d.ts +7 -5
  10. package/dist/capabilities/camera-streams.cap.d.ts.map +1 -1
  11. package/dist/capabilities/capability-definition.d.ts +114 -0
  12. package/dist/capabilities/capability-definition.d.ts.map +1 -1
  13. package/dist/capabilities/decoder.cap.d.ts +90 -0
  14. package/dist/capabilities/decoder.cap.d.ts.map +1 -1
  15. package/dist/capabilities/detection-pipeline.cap.d.ts +6 -4
  16. package/dist/capabilities/detection-pipeline.cap.d.ts.map +1 -1
  17. package/dist/capabilities/device-manager.cap.d.ts +3 -3
  18. package/dist/capabilities/device-ops.cap.d.ts +1 -1
  19. package/dist/capabilities/index.d.ts +20 -20
  20. package/dist/capabilities/index.d.ts.map +1 -1
  21. package/dist/capabilities/local-network.cap.d.ts +5 -5
  22. package/dist/capabilities/mesh-network.cap.d.ts +4 -2
  23. package/dist/capabilities/mesh-network.cap.d.ts.map +1 -1
  24. package/dist/capabilities/motion-detection.cap.d.ts +2 -0
  25. package/dist/capabilities/motion-detection.cap.d.ts.map +1 -1
  26. package/dist/capabilities/motion-zones.cap.d.ts +83 -0
  27. package/dist/capabilities/motion-zones.cap.d.ts.map +1 -0
  28. package/dist/capabilities/network-access.cap.d.ts +5 -4
  29. package/dist/capabilities/network-access.cap.d.ts.map +1 -1
  30. package/dist/capabilities/nodes.cap.d.ts +9 -0
  31. package/dist/capabilities/nodes.cap.d.ts.map +1 -1
  32. package/dist/capabilities/oauth-integration.cap.d.ts +103 -0
  33. package/dist/capabilities/oauth-integration.cap.d.ts.map +1 -0
  34. package/dist/capabilities/pipeline-analytics.cap.d.ts +2 -0
  35. package/dist/capabilities/pipeline-analytics.cap.d.ts.map +1 -1
  36. package/dist/capabilities/ptz-autotrack.cap.d.ts +10 -0
  37. package/dist/capabilities/ptz-autotrack.cap.d.ts.map +1 -1
  38. package/dist/capabilities/ptz.cap.d.ts +57 -1
  39. package/dist/capabilities/ptz.cap.d.ts.map +1 -1
  40. package/dist/capabilities/schemas/streaming-shared.d.ts +110 -3
  41. package/dist/capabilities/schemas/streaming-shared.d.ts.map +1 -1
  42. package/dist/capabilities/snapshot.cap.d.ts +2 -0
  43. package/dist/capabilities/snapshot.cap.d.ts.map +1 -1
  44. package/dist/capabilities/sso-bridge.cap.d.ts +120 -0
  45. package/dist/capabilities/sso-bridge.cap.d.ts.map +1 -1
  46. package/dist/capabilities/stream-broker.cap.d.ts +97 -4
  47. package/dist/capabilities/stream-broker.cap.d.ts.map +1 -1
  48. package/dist/capabilities/stream-params-config-schema.d.ts +56 -0
  49. package/dist/capabilities/stream-params-config-schema.d.ts.map +1 -0
  50. package/dist/capabilities/stream-params.cap.d.ts +482 -0
  51. package/dist/capabilities/stream-params.cap.d.ts.map +1 -0
  52. package/dist/capabilities/user-management.cap.d.ts +198 -1
  53. package/dist/capabilities/user-management.cap.d.ts.map +1 -1
  54. package/dist/capabilities/webrtc-session.cap.d.ts +2 -0
  55. package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
  56. package/dist/generated/addon-api.d.ts +1396 -544
  57. package/dist/generated/addon-api.d.ts.map +1 -1
  58. package/dist/generated/cap-status-types.d.ts +7 -3
  59. package/dist/generated/cap-status-types.d.ts.map +1 -1
  60. package/dist/generated/capability-router-map.d.ts +13 -16
  61. package/dist/generated/capability-router-map.d.ts.map +1 -1
  62. package/dist/generated/device-local-state.d.ts +6 -0
  63. package/dist/generated/device-local-state.d.ts.map +1 -1
  64. package/dist/generated/device-proxy.d.ts +6 -0
  65. package/dist/generated/device-proxy.d.ts.map +1 -1
  66. package/dist/generated/method-access-map.d.ts +1 -1
  67. package/dist/generated/method-access-map.d.ts.map +1 -1
  68. package/dist/generated/system-proxy.d.ts +7 -13
  69. package/dist/generated/system-proxy.d.ts.map +1 -1
  70. package/dist/{index-DS7418lf.js → index-BblD92Si.js} +630 -349
  71. package/dist/index-BblD92Si.js.map +1 -0
  72. package/dist/{index-Ce7RZWP4.mjs → index-CgPd35k5.mjs} +957 -676
  73. package/dist/index-CgPd35k5.mjs.map +1 -0
  74. package/dist/index.d.ts +2 -1
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +325 -75
  77. package/dist/index.js.map +1 -1
  78. package/dist/index.mjs +597 -347
  79. package/dist/index.mjs.map +1 -1
  80. package/dist/interfaces/addon.d.ts +123 -29
  81. package/dist/interfaces/addon.d.ts.map +1 -1
  82. package/dist/interfaces/capability.d.ts +7 -29
  83. package/dist/interfaces/capability.d.ts.map +1 -1
  84. package/dist/interfaces/config-ui.d.ts +4 -101
  85. package/dist/interfaces/config-ui.d.ts.map +1 -1
  86. package/dist/interfaces/decoder.d.ts +12 -0
  87. package/dist/interfaces/decoder.d.ts.map +1 -1
  88. package/dist/interfaces/device-provider.d.ts +0 -4
  89. package/dist/interfaces/device-provider.d.ts.map +1 -1
  90. package/dist/interfaces/event-bus.d.ts +15 -0
  91. package/dist/interfaces/event-bus.d.ts.map +1 -1
  92. package/dist/interfaces/frame-handle.d.ts +40 -0
  93. package/dist/interfaces/frame-handle.d.ts.map +1 -0
  94. package/dist/interfaces/kernel-abstractions.d.ts +6 -0
  95. package/dist/interfaces/kernel-abstractions.d.ts.map +1 -1
  96. package/dist/interfaces/server-network.d.ts +8 -33
  97. package/dist/interfaces/server-network.d.ts.map +1 -1
  98. package/dist/interfaces/stream-broker.d.ts +40 -21
  99. package/dist/interfaces/stream-broker.d.ts.map +1 -1
  100. package/dist/node.js +1 -1
  101. package/dist/node.mjs +1 -1
  102. package/package.json +1 -1
  103. package/dist/capabilities/authentication.cap.d.ts +0 -73
  104. package/dist/capabilities/authentication.cap.d.ts.map +0 -1
  105. package/dist/capabilities/mesh-orchestrator.cap.d.ts +0 -151
  106. package/dist/capabilities/mesh-orchestrator.cap.d.ts.map +0 -1
  107. package/dist/capabilities/remote-access.cap.d.ts +0 -91
  108. package/dist/capabilities/remote-access.cap.d.ts.map +0 -1
  109. package/dist/capabilities/turn-orchestrator.cap.d.ts +0 -64
  110. package/dist/capabilities/turn-orchestrator.cap.d.ts.map +0 -1
  111. package/dist/index-Ce7RZWP4.mjs.map +0 -1
  112. package/dist/index-DS7418lf.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  import { type InferProvider } from './capability-definition.js';
3
- import type { IStreamBroker } from '../interfaces/stream-broker.js';
4
3
  declare const RtspRestreamEntrySchema: z.ZodObject<{
5
4
  brokerId: z.ZodString;
6
5
  url: z.ZodString;
@@ -205,9 +204,9 @@ export declare const streamBrokerCapability: {
205
204
  status: z.ZodEnum<{
206
205
  error: "error";
207
206
  streaming: "streaming";
207
+ unassigned: "unassigned";
208
208
  idle: "idle";
209
209
  connecting: "connecting";
210
- unassigned: "unassigned";
211
210
  }>;
212
211
  resolution: z.ZodOptional<z.ZodObject<{
213
212
  width: z.ZodNumber;
@@ -352,9 +351,103 @@ export declare const streamBrokerCapability: {
352
351
  released: z.ZodBoolean;
353
352
  refcount: z.ZodNumber;
354
353
  }, z.core.$strip>, "mutation">;
355
- readonly getBroker: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
354
+ /**
355
+ * ── Decoded audio-chunk plane (Phase 5 / D9) ──────────────────────
356
+ *
357
+ * The serialisable replacement for the live-object `IStreamBroker.
358
+ * onDecodedAudioChunk` callback path. Unlike the video frame plane,
359
+ * audio chunks are tiny (a ~500ms PCM window is a few KB) so they ship
360
+ * their bytes INLINE over tRPC — no shared-memory ring. A consumer:
361
+ *
362
+ * 1. `subscribeAudioChunks({ brokerId, tag })` — the broker registers
363
+ * a per-subscription bounded FIFO queue and returns a
364
+ * `subscriptionId`.
365
+ * 2. polls `pullAudioChunks({ subscriptionId, maxCount })` — drains
366
+ * `DecodedAudioChunk[]` in arrival order (FIFO, no latest-wins
367
+ * drop: an audio gap is audible / breaks an analysis window). The
368
+ * queue is generously sized; it only drops its oldest chunk if a
369
+ * truly stalled consumer lets it overflow.
370
+ * 3. `unsubscribeAudioChunks({ subscriptionId })` on teardown.
371
+ */
372
+ readonly subscribeAudioChunks: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
356
373
  brokerId: z.ZodString;
357
- }, z.core.$strip>, z.ZodCustom<IStreamBroker | null, IStreamBroker | null>, import("./capability-definition.js").CapabilityMethodKind>;
374
+ tag: z.ZodOptional<z.ZodString>;
375
+ }, z.core.$strip>, z.ZodObject<{
376
+ subscriptionId: z.ZodString;
377
+ }, z.core.$strip>, "mutation">;
378
+ readonly pullAudioChunks: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
379
+ subscriptionId: z.ZodString;
380
+ maxCount: z.ZodDefault<z.ZodNumber>;
381
+ }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
382
+ data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
383
+ sampleRate: z.ZodNumber;
384
+ channels: z.ZodNumber;
385
+ timestamp: z.ZodNumber;
386
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
387
+ readonly unsubscribeAudioChunks: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
388
+ subscriptionId: z.ZodString;
389
+ }, z.core.$strip>, z.ZodObject<{
390
+ released: z.ZodBoolean;
391
+ }, z.core.$strip>, "mutation">;
392
+ /**
393
+ * ── Shared-memory frame plane (Phase 5 / D9) ──────────────────────
394
+ *
395
+ * The handle-based replacement for the live-object `IStreamBroker.
396
+ * onDecodedFrame` callback path. A consumer:
397
+ *
398
+ * 1. `subscribeFrames({ brokerId, format })` — the broker spins up
399
+ * (or reuses) a `frameSink: 'shm'` decoder session producing that
400
+ * `format` and returns a `subscriptionId`.
401
+ * 2. polls `pullFrameHandles({ subscriptionId, maxCount })` — drains
402
+ * zero-pixel `FrameHandle[]`; each handle is fed to a
403
+ * `FrameRingReader` that opens the named shm segment and reads the
404
+ * pixels back zero-copy.
405
+ * 3. `unsubscribeFrames({ subscriptionId })` on teardown.
406
+ *
407
+ * The broker keeps one shm ring per `(brokerId, format)` actually
408
+ * requested — no broker-side `sharp` conversion. fps throttling is
409
+ * implicit (latest-wins ring reads drop frames for a slow consumer).
410
+ */
411
+ readonly subscribeFrames: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
412
+ brokerId: z.ZodString;
413
+ format: z.ZodEnum<{
414
+ rgb: "rgb";
415
+ bgr: "bgr";
416
+ yuv420: "yuv420";
417
+ gray: "gray";
418
+ }>;
419
+ maxFps: z.ZodOptional<z.ZodNumber>;
420
+ tag: z.ZodOptional<z.ZodString>;
421
+ }, z.core.$strip>, z.ZodObject<{
422
+ subscriptionId: z.ZodString;
423
+ maxFps: z.ZodNumber;
424
+ }, z.core.$strip>, "mutation">;
425
+ readonly pullFrameHandles: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
426
+ subscriptionId: z.ZodString;
427
+ maxCount: z.ZodDefault<z.ZodNumber>;
428
+ }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
429
+ shmId: z.ZodString;
430
+ slot: z.ZodNumber;
431
+ seq: z.ZodNumber;
432
+ width: z.ZodNumber;
433
+ height: z.ZodNumber;
434
+ format: z.ZodEnum<{
435
+ jpeg: "jpeg";
436
+ rgb: "rgb";
437
+ bgr: "bgr";
438
+ yuv420: "yuv420";
439
+ gray: "gray";
440
+ }>;
441
+ pts: z.ZodNumber;
442
+ byteLength: z.ZodNumber;
443
+ nodeId: z.ZodString;
444
+ slotCount: z.ZodNumber;
445
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
446
+ readonly unsubscribeFrames: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
447
+ subscriptionId: z.ZodString;
448
+ }, z.core.$strip>, z.ZodObject<{
449
+ released: z.ZodBoolean;
450
+ }, z.core.$strip>, "mutation">;
358
451
  readonly setPreBufferDuration: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
359
452
  brokerId: z.ZodString;
360
453
  seconds: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"stream-broker.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/stream-broker.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA4C,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAMzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEnE,QAAA,MAAM,uBAAuB;;;;;iBAK3B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;iBAQjC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;iBAMpC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;iBAM9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAIvE,QAAA,MAAM,sBAAsB;;;;EAAmC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,QAAA,MAAM,sBAAsB;;;;;EAA0C,CAAA;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAOrE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;iBAMxC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEnF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;iBAQ1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqF/B;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEkC,CAAA;AAEzC,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAEhF,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
1
+ {"version":3,"file":"stream-broker.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/stream-broker.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA4C,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAUzG,QAAA,MAAM,uBAAuB;;;;;iBAK3B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;iBAQjC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;iBAMpC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;iBAM9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAIvE,QAAA,MAAM,sBAAsB;;;;EAAmC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,QAAA,MAAM,sBAAsB;;;;;EAA0C,CAAA;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAOrE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;iBAMxC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEnF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;iBAQ1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqF/B;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAWH;;;;;;;;;;;;;;;;;WAiBG;;;;;;;;;;;;;;;;;;;;;QAkBH;;;;;;;;;;;;;;;;;;WAkBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEkC,CAAA;AAEzC,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAEhF,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * stream-params — server-side `ConfigUISchema` builder.
3
+ *
4
+ * Pure schema-shaping helper: turns the camera-probed `StreamParamsOptions`
5
+ * (availability descriptor) + the current `StreamParamsStatus` (per-profile
6
+ * config) into a `ConfigUISchema` the admin-ui `ConfigFormBuilder` renders
7
+ * directly — one section per profile (main / sub / ext) with resolution,
8
+ * codec, framerate, bitrate, bitrate-mode, encoder-profile and GOP controls.
9
+ *
10
+ * This is the server-side home of the logic that the bespoke
11
+ * `StreamParamsSettings` cap-settings composite used to run client-side
12
+ * (`buildProfileSection`). Both the Reolink and Hikvision `stream-params`
13
+ * providers call `buildStreamParamsConfigSchema` from their
14
+ * `getConfigSchema` cap method so the two cameras emit a structurally
15
+ * identical form. No addon dependencies — only `@camstack/types` shapes —
16
+ * so it lives in `@camstack/types` and is shared without a cross-addon
17
+ * import.
18
+ *
19
+ * The form field keys follow the `stream<Profile>_<prop>` convention
20
+ * (`streamMain_resolution`, `streamSub_codec`, …) so a flat form patch can
21
+ * be re-split per profile on save by `parseStreamParamsFormPatch`.
22
+ */
23
+ import type { ConfigUISchema } from '../interfaces/config-ui.js';
24
+ import type { StreamParamsOptions, StreamParamsStatus, StreamProfile, StreamProfilePatch } from './stream-params.cap.js';
25
+ /** Layout metadata for one of the camera's stream profiles. */
26
+ export interface StreamProfileMeta {
27
+ readonly profile: StreamProfile;
28
+ /** Form-field key prefix (`streamMain`, `streamSub`, `streamExt`). */
29
+ readonly prefix: string;
30
+ /** Human-facing section title. */
31
+ readonly label: string;
32
+ }
33
+ /**
34
+ * The three well-known stream profiles in render order. Exported so the
35
+ * providers and the save-path parser share one definition.
36
+ */
37
+ export declare const STREAM_PROFILE_META: readonly StreamProfileMeta[];
38
+ /**
39
+ * Build the full `stream-params` `ConfigUISchema` from the camera-probed
40
+ * options + current per-profile config. Returns `null` when no profile
41
+ * exposes a configurable property — the cap then reports "no schema" and
42
+ * the renderer shows the unsupported-camera message.
43
+ *
44
+ * `default` on each field is seeded from the current config so the
45
+ * `ConfigFormBuilder` (which reads `value ?? default`) renders the live
46
+ * camera state without a separate `values` map.
47
+ */
48
+ export declare function buildStreamParamsConfigSchema(options: StreamParamsOptions, status: StreamParamsStatus | null): ConfigUISchema | null;
49
+ /**
50
+ * Re-split a flat `ConfigFormBuilder` patch into a `StreamProfilePatch`
51
+ * for one profile. Returns `null` when no field for the profile changed.
52
+ * Select fields arrive as strings — coerced here. Mirrors the save path
53
+ * the bespoke `StreamParamsSettings` composite used.
54
+ */
55
+ export declare function parseStreamParamsFormPatch(patch: Record<string, unknown>, prefix: string): StreamProfilePatch | null;
56
+ //# sourceMappingURL=stream-params-config-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-params-config-schema.d.ts","sourceRoot":"","sources":["../../src/capabilities/stream-params-config-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAA8B,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAExH,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAIlD,CAAA;AAoKV;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAChC,cAAc,GAAG,IAAI,CAUvB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,MAAM,GACb,kBAAkB,GAAG,IAAI,CA6C3B"}
@@ -0,0 +1,482 @@
1
+ import { z } from 'zod';
2
+ import { type InferNativeProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /** One of the camera's stream profiles. */
5
+ export declare const StreamProfileSchema: z.ZodEnum<{
6
+ sub: "sub";
7
+ main: "main";
8
+ ext: "ext";
9
+ }>;
10
+ /** The current encoding config of one stream profile. */
11
+ declare const StreamProfileConfigSchema: z.ZodObject<{
12
+ width: z.ZodNumber;
13
+ height: z.ZodNumber;
14
+ codec: z.ZodEnum<{
15
+ h264: "h264";
16
+ h265: "h265";
17
+ }>;
18
+ framerate: z.ZodNumber;
19
+ bitrate: z.ZodNumber;
20
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
21
+ vbr: "vbr";
22
+ cbr: "cbr";
23
+ }>>;
24
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
25
+ high: "high";
26
+ main: "main";
27
+ baseline: "baseline";
28
+ }>>;
29
+ gop: z.ZodOptional<z.ZodNumber>;
30
+ audio: z.ZodOptional<z.ZodBoolean>;
31
+ }, z.core.$strip>;
32
+ export declare const StreamParamsStatusSchema: z.ZodObject<{
33
+ main: z.ZodOptional<z.ZodObject<{
34
+ width: z.ZodNumber;
35
+ height: z.ZodNumber;
36
+ codec: z.ZodEnum<{
37
+ h264: "h264";
38
+ h265: "h265";
39
+ }>;
40
+ framerate: z.ZodNumber;
41
+ bitrate: z.ZodNumber;
42
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
43
+ vbr: "vbr";
44
+ cbr: "cbr";
45
+ }>>;
46
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
47
+ high: "high";
48
+ main: "main";
49
+ baseline: "baseline";
50
+ }>>;
51
+ gop: z.ZodOptional<z.ZodNumber>;
52
+ audio: z.ZodOptional<z.ZodBoolean>;
53
+ }, z.core.$strip>>;
54
+ sub: z.ZodOptional<z.ZodObject<{
55
+ width: z.ZodNumber;
56
+ height: z.ZodNumber;
57
+ codec: z.ZodEnum<{
58
+ h264: "h264";
59
+ h265: "h265";
60
+ }>;
61
+ framerate: z.ZodNumber;
62
+ bitrate: z.ZodNumber;
63
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
64
+ vbr: "vbr";
65
+ cbr: "cbr";
66
+ }>>;
67
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
68
+ high: "high";
69
+ main: "main";
70
+ baseline: "baseline";
71
+ }>>;
72
+ gop: z.ZodOptional<z.ZodNumber>;
73
+ audio: z.ZodOptional<z.ZodBoolean>;
74
+ }, z.core.$strip>>;
75
+ ext: z.ZodOptional<z.ZodObject<{
76
+ width: z.ZodNumber;
77
+ height: z.ZodNumber;
78
+ codec: z.ZodEnum<{
79
+ h264: "h264";
80
+ h265: "h265";
81
+ }>;
82
+ framerate: z.ZodNumber;
83
+ bitrate: z.ZodNumber;
84
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
85
+ vbr: "vbr";
86
+ cbr: "cbr";
87
+ }>>;
88
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
89
+ high: "high";
90
+ main: "main";
91
+ baseline: "baseline";
92
+ }>>;
93
+ gop: z.ZodOptional<z.ZodNumber>;
94
+ audio: z.ZodOptional<z.ZodBoolean>;
95
+ }, z.core.$strip>>;
96
+ lastFetchedAt: z.ZodNumber;
97
+ }, z.core.$strip>;
98
+ /** What a profile CAN be set to — drives the UI selectors. */
99
+ declare const StreamProfileOptionsSchema: z.ZodObject<{
100
+ resolutions: z.ZodArray<z.ZodObject<{
101
+ width: z.ZodNumber;
102
+ height: z.ZodNumber;
103
+ }, z.core.$strip>>;
104
+ codecs: z.ZodArray<z.ZodEnum<{
105
+ h264: "h264";
106
+ h265: "h265";
107
+ }>>;
108
+ framerates: z.ZodArray<z.ZodNumber>;
109
+ bitrates: z.ZodArray<z.ZodNumber>;
110
+ bitrateRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
111
+ supportsBitrateMode: z.ZodBoolean;
112
+ supportsEncoderProfile: z.ZodBoolean;
113
+ supportsGop: z.ZodBoolean;
114
+ gop: z.ZodOptional<z.ZodObject<{
115
+ min: z.ZodNumber;
116
+ max: z.ZodNumber;
117
+ step: z.ZodNumber;
118
+ }, z.core.$strip>>;
119
+ }, z.core.$strip>;
120
+ export declare const StreamParamsOptionsSchema: z.ZodObject<{
121
+ main: z.ZodOptional<z.ZodObject<{
122
+ resolutions: z.ZodArray<z.ZodObject<{
123
+ width: z.ZodNumber;
124
+ height: z.ZodNumber;
125
+ }, z.core.$strip>>;
126
+ codecs: z.ZodArray<z.ZodEnum<{
127
+ h264: "h264";
128
+ h265: "h265";
129
+ }>>;
130
+ framerates: z.ZodArray<z.ZodNumber>;
131
+ bitrates: z.ZodArray<z.ZodNumber>;
132
+ bitrateRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
133
+ supportsBitrateMode: z.ZodBoolean;
134
+ supportsEncoderProfile: z.ZodBoolean;
135
+ supportsGop: z.ZodBoolean;
136
+ gop: z.ZodOptional<z.ZodObject<{
137
+ min: z.ZodNumber;
138
+ max: z.ZodNumber;
139
+ step: z.ZodNumber;
140
+ }, z.core.$strip>>;
141
+ }, z.core.$strip>>;
142
+ sub: z.ZodOptional<z.ZodObject<{
143
+ resolutions: z.ZodArray<z.ZodObject<{
144
+ width: z.ZodNumber;
145
+ height: z.ZodNumber;
146
+ }, z.core.$strip>>;
147
+ codecs: z.ZodArray<z.ZodEnum<{
148
+ h264: "h264";
149
+ h265: "h265";
150
+ }>>;
151
+ framerates: z.ZodArray<z.ZodNumber>;
152
+ bitrates: z.ZodArray<z.ZodNumber>;
153
+ bitrateRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
154
+ supportsBitrateMode: z.ZodBoolean;
155
+ supportsEncoderProfile: z.ZodBoolean;
156
+ supportsGop: z.ZodBoolean;
157
+ gop: z.ZodOptional<z.ZodObject<{
158
+ min: z.ZodNumber;
159
+ max: z.ZodNumber;
160
+ step: z.ZodNumber;
161
+ }, z.core.$strip>>;
162
+ }, z.core.$strip>>;
163
+ ext: z.ZodOptional<z.ZodObject<{
164
+ resolutions: z.ZodArray<z.ZodObject<{
165
+ width: z.ZodNumber;
166
+ height: z.ZodNumber;
167
+ }, z.core.$strip>>;
168
+ codecs: z.ZodArray<z.ZodEnum<{
169
+ h264: "h264";
170
+ h265: "h265";
171
+ }>>;
172
+ framerates: z.ZodArray<z.ZodNumber>;
173
+ bitrates: z.ZodArray<z.ZodNumber>;
174
+ bitrateRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
175
+ supportsBitrateMode: z.ZodBoolean;
176
+ supportsEncoderProfile: z.ZodBoolean;
177
+ supportsGop: z.ZodBoolean;
178
+ gop: z.ZodOptional<z.ZodObject<{
179
+ min: z.ZodNumber;
180
+ max: z.ZodNumber;
181
+ step: z.ZodNumber;
182
+ }, z.core.$strip>>;
183
+ }, z.core.$strip>>;
184
+ }, z.core.$strip>;
185
+ /** A partial change to one profile — every field optional; a provider
186
+ * ignores fields it doesn't support. */
187
+ export declare const StreamProfilePatchSchema: z.ZodObject<{
188
+ width: z.ZodOptional<z.ZodNumber>;
189
+ height: z.ZodOptional<z.ZodNumber>;
190
+ codec: z.ZodOptional<z.ZodEnum<{
191
+ h264: "h264";
192
+ h265: "h265";
193
+ }>>;
194
+ framerate: z.ZodOptional<z.ZodNumber>;
195
+ bitrate: z.ZodOptional<z.ZodNumber>;
196
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
197
+ vbr: "vbr";
198
+ cbr: "cbr";
199
+ }>>;
200
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
201
+ high: "high";
202
+ main: "main";
203
+ baseline: "baseline";
204
+ }>>;
205
+ gop: z.ZodOptional<z.ZodNumber>;
206
+ audio: z.ZodOptional<z.ZodBoolean>;
207
+ }, z.core.$strip>;
208
+ export type StreamParamsStatus = z.infer<typeof StreamParamsStatusSchema>;
209
+ export type StreamParamsOptions = z.infer<typeof StreamParamsOptionsSchema>;
210
+ export type StreamProfile = z.infer<typeof StreamProfileSchema>;
211
+ export type StreamProfilePatch = z.infer<typeof StreamProfilePatchSchema>;
212
+ export declare const streamParamsCapability: {
213
+ readonly name: "stream-params";
214
+ readonly scope: "device";
215
+ readonly mode: "singleton";
216
+ readonly deviceTypes: readonly [DeviceType.Camera];
217
+ readonly deviceConfig: {
218
+ readonly ui: {
219
+ readonly kind: "derived-form";
220
+ readonly builderId: "stream-params";
221
+ readonly tab: "streaming";
222
+ };
223
+ };
224
+ readonly methods: {
225
+ readonly getOptions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
226
+ deviceId: z.ZodNumber;
227
+ }, z.core.$strip>, z.ZodObject<{
228
+ main: z.ZodOptional<z.ZodObject<{
229
+ resolutions: z.ZodArray<z.ZodObject<{
230
+ width: z.ZodNumber;
231
+ height: z.ZodNumber;
232
+ }, z.core.$strip>>;
233
+ codecs: z.ZodArray<z.ZodEnum<{
234
+ h264: "h264";
235
+ h265: "h265";
236
+ }>>;
237
+ framerates: z.ZodArray<z.ZodNumber>;
238
+ bitrates: z.ZodArray<z.ZodNumber>;
239
+ bitrateRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
240
+ supportsBitrateMode: z.ZodBoolean;
241
+ supportsEncoderProfile: z.ZodBoolean;
242
+ supportsGop: z.ZodBoolean;
243
+ gop: z.ZodOptional<z.ZodObject<{
244
+ min: z.ZodNumber;
245
+ max: z.ZodNumber;
246
+ step: z.ZodNumber;
247
+ }, z.core.$strip>>;
248
+ }, z.core.$strip>>;
249
+ sub: z.ZodOptional<z.ZodObject<{
250
+ resolutions: z.ZodArray<z.ZodObject<{
251
+ width: z.ZodNumber;
252
+ height: z.ZodNumber;
253
+ }, z.core.$strip>>;
254
+ codecs: z.ZodArray<z.ZodEnum<{
255
+ h264: "h264";
256
+ h265: "h265";
257
+ }>>;
258
+ framerates: z.ZodArray<z.ZodNumber>;
259
+ bitrates: z.ZodArray<z.ZodNumber>;
260
+ bitrateRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
261
+ supportsBitrateMode: z.ZodBoolean;
262
+ supportsEncoderProfile: z.ZodBoolean;
263
+ supportsGop: z.ZodBoolean;
264
+ gop: z.ZodOptional<z.ZodObject<{
265
+ min: z.ZodNumber;
266
+ max: z.ZodNumber;
267
+ step: z.ZodNumber;
268
+ }, z.core.$strip>>;
269
+ }, z.core.$strip>>;
270
+ ext: z.ZodOptional<z.ZodObject<{
271
+ resolutions: z.ZodArray<z.ZodObject<{
272
+ width: z.ZodNumber;
273
+ height: z.ZodNumber;
274
+ }, z.core.$strip>>;
275
+ codecs: z.ZodArray<z.ZodEnum<{
276
+ h264: "h264";
277
+ h265: "h265";
278
+ }>>;
279
+ framerates: z.ZodArray<z.ZodNumber>;
280
+ bitrates: z.ZodArray<z.ZodNumber>;
281
+ bitrateRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
282
+ supportsBitrateMode: z.ZodBoolean;
283
+ supportsEncoderProfile: z.ZodBoolean;
284
+ supportsGop: z.ZodBoolean;
285
+ gop: z.ZodOptional<z.ZodObject<{
286
+ min: z.ZodNumber;
287
+ max: z.ZodNumber;
288
+ step: z.ZodNumber;
289
+ }, z.core.$strip>>;
290
+ }, z.core.$strip>>;
291
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
292
+ readonly setProfile: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
293
+ deviceId: z.ZodNumber;
294
+ profile: z.ZodEnum<{
295
+ sub: "sub";
296
+ main: "main";
297
+ ext: "ext";
298
+ }>;
299
+ patch: z.ZodObject<{
300
+ width: z.ZodOptional<z.ZodNumber>;
301
+ height: z.ZodOptional<z.ZodNumber>;
302
+ codec: z.ZodOptional<z.ZodEnum<{
303
+ h264: "h264";
304
+ h265: "h265";
305
+ }>>;
306
+ framerate: z.ZodOptional<z.ZodNumber>;
307
+ bitrate: z.ZodOptional<z.ZodNumber>;
308
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
309
+ vbr: "vbr";
310
+ cbr: "cbr";
311
+ }>>;
312
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
313
+ high: "high";
314
+ main: "main";
315
+ baseline: "baseline";
316
+ }>>;
317
+ gop: z.ZodOptional<z.ZodNumber>;
318
+ audio: z.ZodOptional<z.ZodBoolean>;
319
+ }, z.core.$strip>;
320
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
321
+ /**
322
+ * Build the `ConfigUISchema` (admin-ui `ConfigFormBuilder` input
323
+ * shape) for this camera's stream-encoder settings — one section per
324
+ * profile (main / sub / ext) with the resolution / codec / framerate
325
+ * / bitrate / bitrate-mode / encoder-profile / GOP controls the
326
+ * firmware actually exposes.
327
+ *
328
+ * Driven by `getOptions` (camera-probed availability) + `getStatus`
329
+ * (current per-profile config); each field's `default` is seeded
330
+ * from the live config so the form renders the camera state in one
331
+ * pass. Returns `null` when the camera exposes no configurable
332
+ * stream property — the renderer then shows the unsupported message.
333
+ *
334
+ * Output is `z.unknown().nullable()` — the same convention every
335
+ * other `ConfigUISchema`-returning cap method uses (`device-ops`,
336
+ * `device-manager`); `ConfigUISchema` is a TS-only type with no
337
+ * companion Zod schema, and a concrete object would collapse
338
+ * unrelated AppRouter branches to `unknown` during codegen.
339
+ */
340
+ readonly getConfigSchema: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
341
+ deviceId: z.ZodNumber;
342
+ }, z.core.$strip>, z.ZodNullable<z.ZodUnknown>, import("./capability-definition.js").CapabilityMethodKind>;
343
+ };
344
+ readonly status: {
345
+ readonly schema: z.ZodObject<{
346
+ main: z.ZodOptional<z.ZodObject<{
347
+ width: z.ZodNumber;
348
+ height: z.ZodNumber;
349
+ codec: z.ZodEnum<{
350
+ h264: "h264";
351
+ h265: "h265";
352
+ }>;
353
+ framerate: z.ZodNumber;
354
+ bitrate: z.ZodNumber;
355
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
356
+ vbr: "vbr";
357
+ cbr: "cbr";
358
+ }>>;
359
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
360
+ high: "high";
361
+ main: "main";
362
+ baseline: "baseline";
363
+ }>>;
364
+ gop: z.ZodOptional<z.ZodNumber>;
365
+ audio: z.ZodOptional<z.ZodBoolean>;
366
+ }, z.core.$strip>>;
367
+ sub: z.ZodOptional<z.ZodObject<{
368
+ width: z.ZodNumber;
369
+ height: z.ZodNumber;
370
+ codec: z.ZodEnum<{
371
+ h264: "h264";
372
+ h265: "h265";
373
+ }>;
374
+ framerate: z.ZodNumber;
375
+ bitrate: z.ZodNumber;
376
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
377
+ vbr: "vbr";
378
+ cbr: "cbr";
379
+ }>>;
380
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
381
+ high: "high";
382
+ main: "main";
383
+ baseline: "baseline";
384
+ }>>;
385
+ gop: z.ZodOptional<z.ZodNumber>;
386
+ audio: z.ZodOptional<z.ZodBoolean>;
387
+ }, z.core.$strip>>;
388
+ ext: z.ZodOptional<z.ZodObject<{
389
+ width: z.ZodNumber;
390
+ height: z.ZodNumber;
391
+ codec: z.ZodEnum<{
392
+ h264: "h264";
393
+ h265: "h265";
394
+ }>;
395
+ framerate: z.ZodNumber;
396
+ bitrate: z.ZodNumber;
397
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
398
+ vbr: "vbr";
399
+ cbr: "cbr";
400
+ }>>;
401
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
402
+ high: "high";
403
+ main: "main";
404
+ baseline: "baseline";
405
+ }>>;
406
+ gop: z.ZodOptional<z.ZodNumber>;
407
+ audio: z.ZodOptional<z.ZodBoolean>;
408
+ }, z.core.$strip>>;
409
+ lastFetchedAt: z.ZodNumber;
410
+ }, z.core.$strip>;
411
+ readonly kind: "poll";
412
+ };
413
+ readonly runtimeState: z.ZodObject<{
414
+ main: z.ZodOptional<z.ZodObject<{
415
+ width: z.ZodNumber;
416
+ height: z.ZodNumber;
417
+ codec: z.ZodEnum<{
418
+ h264: "h264";
419
+ h265: "h265";
420
+ }>;
421
+ framerate: z.ZodNumber;
422
+ bitrate: z.ZodNumber;
423
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
424
+ vbr: "vbr";
425
+ cbr: "cbr";
426
+ }>>;
427
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
428
+ high: "high";
429
+ main: "main";
430
+ baseline: "baseline";
431
+ }>>;
432
+ gop: z.ZodOptional<z.ZodNumber>;
433
+ audio: z.ZodOptional<z.ZodBoolean>;
434
+ }, z.core.$strip>>;
435
+ sub: z.ZodOptional<z.ZodObject<{
436
+ width: z.ZodNumber;
437
+ height: z.ZodNumber;
438
+ codec: z.ZodEnum<{
439
+ h264: "h264";
440
+ h265: "h265";
441
+ }>;
442
+ framerate: z.ZodNumber;
443
+ bitrate: z.ZodNumber;
444
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
445
+ vbr: "vbr";
446
+ cbr: "cbr";
447
+ }>>;
448
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
449
+ high: "high";
450
+ main: "main";
451
+ baseline: "baseline";
452
+ }>>;
453
+ gop: z.ZodOptional<z.ZodNumber>;
454
+ audio: z.ZodOptional<z.ZodBoolean>;
455
+ }, z.core.$strip>>;
456
+ ext: z.ZodOptional<z.ZodObject<{
457
+ width: z.ZodNumber;
458
+ height: z.ZodNumber;
459
+ codec: z.ZodEnum<{
460
+ h264: "h264";
461
+ h265: "h265";
462
+ }>;
463
+ framerate: z.ZodNumber;
464
+ bitrate: z.ZodNumber;
465
+ bitrateMode: z.ZodOptional<z.ZodEnum<{
466
+ vbr: "vbr";
467
+ cbr: "cbr";
468
+ }>>;
469
+ encoderProfile: z.ZodOptional<z.ZodEnum<{
470
+ high: "high";
471
+ main: "main";
472
+ baseline: "baseline";
473
+ }>>;
474
+ gop: z.ZodOptional<z.ZodNumber>;
475
+ audio: z.ZodOptional<z.ZodBoolean>;
476
+ }, z.core.$strip>>;
477
+ lastFetchedAt: z.ZodNumber;
478
+ }, z.core.$strip>;
479
+ };
480
+ export type IStreamParamsProvider = InferNativeProvider<typeof streamParamsCapability>;
481
+ export { StreamProfileConfigSchema, StreamProfileOptionsSchema };
482
+ //# sourceMappingURL=stream-params.cap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-params.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/stream-params.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB;;;;EAAiC,CAAA;AAEjE,yDAAyD;AACzD,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;iBAU7B,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMnC,CAAA;AAEF,8DAA8D;AAC9D,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;iBAgB9B,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIpC,CAAA;AAEF;yCACyC;AACzC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;iBAUnC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACzE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsB/B;;;;;;;;;;;;;;;;;;WAkBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWkC,CAAA;AAEzC,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAEtF,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,CAAA"}