@camstack/types 1.2.162 → 1.2.163

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 (34) hide show
  1. package/dist/addon.js +4 -3
  2. package/dist/addon.mjs +4 -3
  3. package/dist/capabilities/alerts.cap.d.ts +5 -5
  4. package/dist/capabilities/index.d.ts +7 -5
  5. package/dist/capabilities/notifier.cap.d.ts +3 -3
  6. package/dist/capabilities/pet-feeder.cap.d.ts +4 -4
  7. package/dist/capabilities/snapshot.cap.d.ts +2 -2
  8. package/dist/capabilities/storage-occupancy.cap.d.ts +72 -0
  9. package/dist/capabilities/storage-provider.cap.d.ts +110 -0
  10. package/dist/capabilities/storage.cap.d.ts +43 -0
  11. package/dist/capabilities/stream-broker.cap.d.ts +1 -1
  12. package/dist/enums/event-category.d.ts +13 -0
  13. package/dist/enums.js +1 -1
  14. package/dist/enums.mjs +1 -1
  15. package/dist/{event-category-b8kBSOTT.js → event-category-BVo6ta6_.js} +13 -0
  16. package/dist/{event-category-zAv7pMUz.mjs → event-category-CnLqLOKs.mjs} +13 -0
  17. package/dist/generated/addon-api.d.ts +22 -0
  18. package/dist/generated/capability-router-map.d.ts +5 -2
  19. package/dist/generated/collection-array-methods.d.ts +1 -1
  20. package/dist/generated/method-access-map.d.ts +1 -1
  21. package/dist/generated/system-proxy.d.ts +1 -1
  22. package/dist/index.d.ts +4 -2
  23. package/dist/index.js +881 -552
  24. package/dist/index.mjs +862 -553
  25. package/dist/interfaces/event-bus.d.ts +19 -0
  26. package/dist/interfaces/storage-location-mode.d.ts +135 -0
  27. package/dist/interfaces/storage-location.d.ts +54 -6
  28. package/dist/node.d.ts +13 -11
  29. package/dist/node.js +935 -876
  30. package/dist/node.mjs +936 -879
  31. package/dist/{sleep-DDIFZGbc.js → sleep-BZtO-eFY.js} +1 -1
  32. package/dist/{sleep-Cfij6Jj9.mjs → sleep-Bd-Y4RUt.mjs} +1 -1
  33. package/dist/storage/physical-root.d.ts +25 -0
  34. package/package.json +1 -1
@@ -96,10 +96,20 @@ export declare const storageCapability: {
96
96
  nodeId: z.ZodOptional<z.ZodString>;
97
97
  isSystem: z.ZodDefault<z.ZodBoolean>;
98
98
  enabled: z.ZodOptional<z.ZodBoolean>;
99
+ mode: z.ZodOptional<z.ZodEnum<{
100
+ readonly: "readonly";
101
+ active: "active";
102
+ drain: "drain";
103
+ disabled: "disabled";
104
+ }>>;
99
105
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
100
106
  totalBytes: z.ZodNumber;
101
107
  availableBytes: z.ZodNumber;
102
108
  }, z.core.$strip>>>;
109
+ owned: z.ZodOptional<z.ZodObject<{
110
+ bytes: z.ZodNumber;
111
+ measuredAtMs: z.ZodNumber;
112
+ }, z.core.$strip>>;
103
113
  createdAt: z.ZodNumber;
104
114
  updatedAt: z.ZodNumber;
105
115
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
@@ -131,10 +141,20 @@ export declare const storageCapability: {
131
141
  providerId: z.ZodString;
132
142
  config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
133
143
  isSystem: z.ZodDefault<z.ZodBoolean>;
144
+ mode: z.ZodOptional<z.ZodEnum<{
145
+ readonly: "readonly";
146
+ active: "active";
147
+ drain: "drain";
148
+ disabled: "disabled";
149
+ }>>;
134
150
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
135
151
  totalBytes: z.ZodNumber;
136
152
  availableBytes: z.ZodNumber;
137
153
  }, z.core.$strip>>>;
154
+ owned: z.ZodOptional<z.ZodObject<{
155
+ bytes: z.ZodNumber;
156
+ measuredAtMs: z.ZodNumber;
157
+ }, z.core.$strip>>;
138
158
  }, z.core.$strip>, z.ZodObject<{
139
159
  id: z.ZodString;
140
160
  type: z.ZodString;
@@ -144,10 +164,20 @@ export declare const storageCapability: {
144
164
  nodeId: z.ZodOptional<z.ZodString>;
145
165
  isSystem: z.ZodDefault<z.ZodBoolean>;
146
166
  enabled: z.ZodOptional<z.ZodBoolean>;
167
+ mode: z.ZodOptional<z.ZodEnum<{
168
+ readonly: "readonly";
169
+ active: "active";
170
+ drain: "drain";
171
+ disabled: "disabled";
172
+ }>>;
147
173
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
148
174
  totalBytes: z.ZodNumber;
149
175
  availableBytes: z.ZodNumber;
150
176
  }, z.core.$strip>>>;
177
+ owned: z.ZodOptional<z.ZodObject<{
178
+ bytes: z.ZodNumber;
179
+ measuredAtMs: z.ZodNumber;
180
+ }, z.core.$strip>>;
151
181
  createdAt: z.ZodNumber;
152
182
  updatedAt: z.ZodNumber;
153
183
  }, z.core.$strip>, "mutation">;
@@ -169,6 +199,19 @@ export declare const storageCapability: {
169
199
  id: z.ZodString;
170
200
  force: z.ZodOptional<z.ZodBoolean>;
171
201
  }, z.core.$strip>, z.ZodVoid, "mutation">;
202
+ /**
203
+ * How far each draining location has got (D386). A pure READ of what the
204
+ * last pressure sweep computed — it starts no work, and a location that is
205
+ * not draining simply does not appear.
206
+ */
207
+ readonly listDrainProgress: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
208
+ locationId: z.ZodString;
209
+ startedAtMs: z.ZodNumber;
210
+ startBytes: z.ZodNumber;
211
+ bytesRemaining: z.ZodNumber;
212
+ drained: z.ZodBoolean;
213
+ estimatedEmptyAtMs: z.ZodNullable<z.ZodNumber>;
214
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
172
215
  readonly testLocation: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
173
216
  id: z.ZodString;
174
217
  }, z.core.$strip>, z.ZodObject<{
@@ -294,10 +294,10 @@ export type BrokerDecodedClient = z.infer<typeof BrokerDecodedClientSchema>;
294
294
  export type BrokerAudioClient = z.infer<typeof BrokerAudioClientSchema>;
295
295
  export type BrokerClients = z.infer<typeof BrokerClientsSchema>;
296
296
  export declare const PlaceholderReasonSchema: z.ZodEnum<{
297
+ disabled: "disabled";
297
298
  sleeping: "sleeping";
298
299
  reconnecting: "reconnecting";
299
300
  offline: "offline";
300
- disabled: "disabled";
301
301
  waking: "waking";
302
302
  }>;
303
303
  export type PlaceholderReason = z.infer<typeof PlaceholderReasonSchema>;
@@ -192,6 +192,19 @@ export declare enum EventCategory {
192
192
  ProcessCrashed = "process.crashed",
193
193
  ProcessRestartScheduled = "process.restart_scheduled",
194
194
  ProcessRestarted = "process.restarted",
195
+ /**
196
+ * The SET of storage locations changed — one was created, edited, enabled,
197
+ * disabled or deleted through `storage.upsertLocation` / `deleteLocation`.
198
+ *
199
+ * Telemetry, not a transaction (D8/D11): every consumer that re-resolves on
200
+ * it must also converge on its own periodic path, because a dropped event
201
+ * must not leave a node writing to yesterday's disk set forever. It exists
202
+ * because there was NO signal at all — an operator who added a second
203
+ * recordings disk in the admin UI got nothing, and the recorder kept its
204
+ * resolved locations until something else happened to re-resolve them
205
+ * (D387). Payload `StorageLocationsChangedPayload`.
206
+ */
207
+ StorageLocationsChanged = "storage.locations-changed",
195
208
  RecordingStarted = "recording.started",
196
209
  RecordingStopped = "recording.stopped",
197
210
  RecordingError = "recording.error",
package/dist/enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_event_category = require("./event-category-b8kBSOTT.js");
2
+ const require_event_category = require("./event-category-BVo6ta6_.js");
3
3
  //#region src/enums/event-source-type.ts
4
4
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
5
5
  EventSourceType["Addon"] = "addon";
package/dist/enums.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-zAv7pMUz.mjs";
1
+ import { t as EventCategory } from "./event-category-CnLqLOKs.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -193,6 +193,19 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
193
193
  EventCategory["ProcessCrashed"] = "process.crashed";
194
194
  EventCategory["ProcessRestartScheduled"] = "process.restart_scheduled";
195
195
  EventCategory["ProcessRestarted"] = "process.restarted";
196
+ /**
197
+ * The SET of storage locations changed — one was created, edited, enabled,
198
+ * disabled or deleted through `storage.upsertLocation` / `deleteLocation`.
199
+ *
200
+ * Telemetry, not a transaction (D8/D11): every consumer that re-resolves on
201
+ * it must also converge on its own periodic path, because a dropped event
202
+ * must not leave a node writing to yesterday's disk set forever. It exists
203
+ * because there was NO signal at all — an operator who added a second
204
+ * recordings disk in the admin UI got nothing, and the recorder kept its
205
+ * resolved locations until something else happened to re-resolve them
206
+ * (D387). Payload `StorageLocationsChangedPayload`.
207
+ */
208
+ EventCategory["StorageLocationsChanged"] = "storage.locations-changed";
196
209
  EventCategory["RecordingStarted"] = "recording.started";
197
210
  EventCategory["RecordingStopped"] = "recording.stopped";
198
211
  EventCategory["RecordingError"] = "recording.error";
@@ -193,6 +193,19 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
193
193
  EventCategory["ProcessCrashed"] = "process.crashed";
194
194
  EventCategory["ProcessRestartScheduled"] = "process.restart_scheduled";
195
195
  EventCategory["ProcessRestarted"] = "process.restarted";
196
+ /**
197
+ * The SET of storage locations changed — one was created, edited, enabled,
198
+ * disabled or deleted through `storage.upsertLocation` / `deleteLocation`.
199
+ *
200
+ * Telemetry, not a transaction (D8/D11): every consumer that re-resolves on
201
+ * it must also converge on its own periodic path, because a dropped event
202
+ * must not leave a node writing to yesterday's disk set forever. It exists
203
+ * because there was NO signal at all — an operator who added a second
204
+ * recordings disk in the admin UI got nothing, and the recorder kept its
205
+ * resolved locations until something else happened to re-resolve them
206
+ * (D387). Payload `StorageLocationsChangedPayload`.
207
+ */
208
+ EventCategory["StorageLocationsChanged"] = "storage.locations-changed";
196
209
  EventCategory["RecordingStarted"] = "recording.started";
197
210
  EventCategory["RecordingStopped"] = "recording.stopped";
198
211
  EventCategory["RecordingError"] = "recording.error";
@@ -104,6 +104,7 @@ import type { snapshotCapability } from '../capabilities/snapshot.cap.js';
104
104
  import type { ssoBridgeCapability } from '../capabilities/sso-bridge.cap.js';
105
105
  import type { storageEvictableCapability } from '../capabilities/storage-evictable.cap.js';
106
106
  import type { storageMigrationCapability } from '../capabilities/storage-migration.cap.js';
107
+ import type { storageOccupancyCapability } from '../capabilities/storage-occupancy.cap.js';
107
108
  import type { storageProviderCapability } from '../capabilities/storage-provider.cap.js';
108
109
  import type { storageCapability } from '../capabilities/storage.cap.js';
109
110
  import type { streamBrokerCapability } from '../capabilities/stream-broker.cap.js';
@@ -7415,6 +7416,13 @@ export type AppRouter = TrpcCoreRouter<{
7415
7416
  output: z.infer<typeof storageCapability.methods.deleteLocation.output>;
7416
7417
  meta: object;
7417
7418
  }>;
7419
+ listDrainProgress: TRPCQueryProcedure<{
7420
+ input: {
7421
+ nodeId?: string | undefined;
7422
+ } | undefined;
7423
+ output: z.infer<typeof storageCapability.methods.listDrainProgress.output>;
7424
+ meta: object;
7425
+ }>;
7418
7426
  testLocation: TRPCQueryProcedure<{
7419
7427
  input: {
7420
7428
  [x: string]: unknown;
@@ -7542,6 +7550,20 @@ export type AppRouter = TrpcCoreRouter<{
7542
7550
  meta: object;
7543
7551
  }>;
7544
7552
  }>>;
7553
+ storageOccupancy: TRPCBuiltRouter<{
7554
+ ctx: TrpcContext;
7555
+ meta: object;
7556
+ errorShape: AugmentedErrorShape;
7557
+ transformer: true;
7558
+ }, TRPCDecorateCreateRouterOptions<{
7559
+ getOccupancy: TRPCQueryProcedure<{
7560
+ input: {
7561
+ [x: string]: unknown;
7562
+ } & z.input<typeof storageOccupancyCapability.methods.getOccupancy.input>;
7563
+ output: z.infer<typeof storageOccupancyCapability.methods.getOccupancy.output>;
7564
+ meta: object;
7565
+ }>;
7566
+ }>>;
7545
7567
  storageProvider: TRPCBuiltRouter<{
7546
7568
  ctx: TrpcContext;
7547
7569
  meta: object;
@@ -127,6 +127,7 @@ export { ssoBridgeCapability } from '../capabilities/sso-bridge.cap.js';
127
127
  export { storageCapability } from '../capabilities/storage.cap.js';
128
128
  export { storageEvictableCapability } from '../capabilities/storage-evictable.cap.js';
129
129
  export { storageMigrationCapability } from '../capabilities/storage-migration.cap.js';
130
+ export { storageOccupancyCapability } from '../capabilities/storage-occupancy.cap.js';
130
131
  export { storageProviderCapability } from '../capabilities/storage-provider.cap.js';
131
132
  export { streamBrokerCapability } from '../capabilities/stream-broker.cap.js';
132
133
  export { streamCatalogCapability } from '../capabilities/stream-catalog.cap.js';
@@ -283,6 +284,7 @@ export declare const CAPABILITY_NAMES: {
283
284
  readonly storage: "storage";
284
285
  readonly storageEvictable: "storage-evictable";
285
286
  readonly storageMigration: "storage-migration";
287
+ readonly storageOccupancy: "storage-occupancy";
286
288
  readonly storageProvider: "storage-provider";
287
289
  readonly streamBroker: "stream-broker";
288
290
  readonly streamCatalog: "stream-catalog";
@@ -452,6 +454,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
452
454
  readonly storage: TRouter;
453
455
  readonly storageEvictable: TRouter;
454
456
  readonly storageMigration: TRouter;
457
+ readonly storageOccupancy: TRouter;
455
458
  readonly storageProvider: TRouter;
456
459
  readonly streamBroker: TRouter;
457
460
  readonly streamCatalog: TRouter;
@@ -483,8 +486,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
483
486
  export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "navigation", "network-link", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recording-export", "recording-signal", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
484
487
  /** Union of singleton capability names (literal string union). */
485
488
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
486
- /** Capability names whose mode is `collection` (27 caps). */
487
- export declare const COLLECTION_CAPABILITY_NAMES: readonly ["addon-pages-source", "addon-routes", "addon-widgets-source", "auth-provider", "broker", "connection-test", "custom-model-registry", "data-store-provider", "device-export", "device-provider", "embedding-encoder", "failure-contribution", "llm", "load-contribution", "log-channels", "log-destination", "login-method", "mesh-network", "mqtt-broker", "network-access", "notification-output", "oauth-integration", "smtp-provider", "storage-evictable", "storage-provider", "turn-provider", "user-passkeys"];
489
+ /** Capability names whose mode is `collection` (28 caps). */
490
+ export declare const COLLECTION_CAPABILITY_NAMES: readonly ["addon-pages-source", "addon-routes", "addon-widgets-source", "auth-provider", "broker", "connection-test", "custom-model-registry", "data-store-provider", "device-export", "device-provider", "embedding-encoder", "failure-contribution", "llm", "load-contribution", "log-channels", "log-destination", "login-method", "mesh-network", "mqtt-broker", "network-access", "notification-output", "oauth-integration", "smtp-provider", "storage-evictable", "storage-occupancy", "storage-provider", "turn-provider", "user-passkeys"];
488
491
  /** Union of collection capability names (literal string union). */
489
492
  export type CollectionCapabilityName = typeof COLLECTION_CAPABILITY_NAMES[number];
490
493
  /** Capability mode lookup at runtime — mirrors the `.cap.ts` definitions. */
@@ -8,7 +8,7 @@
8
8
  * barrel (`ALL_CAPABILITY_DEFINITIONS`), which would cost ~144MB RSS per
9
9
  * forked runner. See docs/decisions/adr-0028.md.
10
10
  *
11
- * Coverage: 20 collection caps, 33 array methods.
11
+ * Coverage: 21 collection caps, 34 array methods.
12
12
  */
13
13
  export declare const COLLECTION_ARRAY_METHODS: Readonly<Record<string, readonly string[]>>;
14
14
  /**
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1019 method paths across 128 capabilities.
9
+ * Coverage: 1021 method paths across 129 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -91,7 +91,7 @@ export interface SystemProxy {
91
91
  readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'createExport' | 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl' | 'readExportBytes'>;
92
92
  readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
93
93
  readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'insert' | 'insertMany' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
94
- readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'testLocation' | 'listProviders' | 'testConfig'>;
94
+ readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'listDrainProgress' | 'testLocation' | 'listProviders' | 'testConfig'>;
95
95
  readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
96
96
  readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'subscribeFrames' | 'pullFrameHandles' | 'unsubscribeFrames' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
97
97
  readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup' | 'getSiteLocation' | 'setSiteLocation' | 'detectSiteLocation' | 'getRequestCensus' | 'getLoadContributions' | 'getFailureContributions' | 'getLoggingSettings' | 'setLoggingSettings'>;
package/dist/index.d.ts CHANGED
@@ -86,10 +86,12 @@ export type * from './interfaces/server-analysis.js';
86
86
  export * from './interfaces/server-analysis.js';
87
87
  export type * from './interfaces/server-network.js';
88
88
  export type * from './interfaces/storage.js';
89
- export type { LegacyStorageLocationDefault, StorageLocation, StorageLocationRef, } from './interfaces/storage-location.js';
90
- export { isLocationEnabled, LegacyStorageLocationDefaultSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, } from './interfaces/storage-location.js';
89
+ export type { LegacyStorageLocationDefault, StorageDrainProgress, StorageLocation, StorageLocationRef, } from './interfaces/storage-location.js';
90
+ export { gbToBytes, isLocationEnabled, LegacyStorageLocationDefaultSchema, STORAGE_BYTES_PER_GB, StorageDrainProgressSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, } from './interfaces/storage-location.js';
91
91
  export type { StorageAccess, StorageLocationDeclaration, } from './interfaces/storage-location-declaration.js';
92
92
  export { STORAGE_ACCESS_FALLBACK, StorageAccessSchema, StorageLocationDeclarationSchema, } from './interfaces/storage-location-declaration.js';
93
+ export type { StorageEvictionPolicy, StorageLocationMode, StorageLocationModePatch, StorageLocationStateSource, } from './interfaces/storage-location-mode.js';
94
+ export { evictionPolicyForMode, evictionPolicyOfLocation, isStorageLocationMode, LEGACY_READ_ONLY_CONFIG_KEY, legacyModeOf, mayReadLocation, mayWriteToLocation, modeMayRead, modeMayWrite, resolveLocationMode, STORAGE_LOCATION_MODES, StorageEvictionPolicySchema, StorageLocationModeSchema, strippedOfLegacyReadOnly, withLocationMode, } from './interfaces/storage-location-mode.js';
93
95
  export * from './interfaces/stream-broker.js';
94
96
  export type * from './interfaces/task-handler.js';
95
97
  export type { Timezone, TimezoneDstRule, Weekday } from './interfaces/timezones.js';