@evercam/api 1.0.0-93d7383e0 → 1.0.0-946af3a76

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 (69) hide show
  1. package/dist/api/api/3dFirebaseApi.d.ts +63 -24
  2. package/dist/api/api/adminApi.d.ts +17 -10
  3. package/dist/api/api/aiApi.d.ts +95 -3
  4. package/dist/api/api/authzApi.d.ts +4 -1
  5. package/dist/api/api/evercamApi.d.ts +39 -25
  6. package/dist/api/api/evercamLabsApi.d.ts +5 -16
  7. package/dist/api/api/index.d.ts +1 -0
  8. package/dist/api/api/ingestApi.d.ts +41 -31
  9. package/dist/api/api/workflowsApi.d.ts +15 -0
  10. package/dist/api/types/360.d.ts +117 -42
  11. package/dist/api/types/admin.d.ts +1 -1
  12. package/dist/api/types/aiConfigs.d.ts +102 -12
  13. package/dist/api/types/analytics.d.ts +29 -24
  14. package/dist/api/types/auditLogs.d.ts +1 -4
  15. package/dist/api/types/authz.d.ts +71 -0
  16. package/dist/api/types/automation.d.ts +32 -4
  17. package/dist/api/types/axios.d.ts +9 -8
  18. package/dist/api/types/bim.d.ts +12 -6
  19. package/dist/api/types/camera.d.ts +27 -22
  20. package/dist/api/types/comments.d.ts +9 -2
  21. package/dist/api/types/company.d.ts +1 -2
  22. package/dist/api/types/compare.d.ts +1 -1
  23. package/dist/api/types/connector.d.ts +2 -0
  24. package/dist/api/types/detections.d.ts +1 -0
  25. package/dist/api/types/drone.d.ts +1 -2
  26. package/dist/api/types/errors.d.ts +7 -2
  27. package/dist/api/types/gateReport.d.ts +0 -11
  28. package/dist/api/types/gateReportManagement.d.ts +2 -7
  29. package/dist/api/types/hammertech.d.ts +98 -0
  30. package/dist/api/types/index.d.ts +6 -2
  31. package/dist/api/types/ingest.d.ts +178 -25
  32. package/dist/api/types/kit.d.ts +44 -101
  33. package/dist/api/types/media.d.ts +7 -2
  34. package/dist/api/types/notification.d.ts +52 -2
  35. package/dist/api/types/observationEvents.d.ts +141 -0
  36. package/dist/api/types/observations.d.ts +84 -0
  37. package/dist/api/types/planner.d.ts +1 -8
  38. package/dist/api/types/posthog.d.ts +20 -0
  39. package/dist/api/types/project.d.ts +15 -3
  40. package/dist/api/types/recording.d.ts +5 -5
  41. package/dist/api/types/ring.d.ts +16 -16
  42. package/dist/api/types/roi.d.ts +2 -10
  43. package/dist/api/types/routeParams.d.ts +1 -0
  44. package/dist/api/types/shared.d.ts +5 -22
  45. package/dist/api/types/shares.d.ts +0 -13
  46. package/dist/api/types/siteAnalytics.d.ts +1 -3
  47. package/dist/api/types/siteAnalyticsManagement.d.ts +127 -0
  48. package/dist/api/types/siteView.d.ts +6 -1
  49. package/dist/api/types/socket.d.ts +4 -0
  50. package/dist/api/types/storyblok.d.ts +0 -13
  51. package/dist/api/types/timelapse.d.ts +1 -8
  52. package/dist/api/types/user.d.ts +16 -3
  53. package/dist/api/types/workflows.d.ts +108 -0
  54. package/dist/api/utils.d.ts +1 -0
  55. package/dist/index.js +1592 -941
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.umd.cjs +1 -1
  58. package/dist/index.umd.cjs.map +1 -1
  59. package/dist/shared/types/components.d.ts +221 -44
  60. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  61. package/dist/shared/types/droneUpload.d.ts +67 -0
  62. package/dist/shared/types/index.d.ts +4 -0
  63. package/dist/shared/types/observations.d.ts +25 -0
  64. package/dist/shared/types/report.d.ts +101 -0
  65. package/dist/shared/utils/datePickerValue.d.ts +36 -0
  66. package/dist/shared/utils/datePresets.d.ts +31 -0
  67. package/package.json +3 -1
  68. package/dist/api/types/copilot.d.ts +0 -162
  69. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -1,35 +1,36 @@
1
1
  import type { AxiosRequestConfig } from "axios";
2
2
  import type { SwrRequestConfig } from "@evercam/api/types";
3
- import type { _360AssetsQueryParams, _360AssetsRequestPayload, _360QueueQueryParams, _360AssetsUploadPayload, _360AssetsResponse, _360AssetsCountsResponse, _360QueueResponse, _360FloorsResponse, DroneQueueResponse, DroneUploadsResponse, IngestUploadInitResponse, BimUploadsResponse, MobileAssetsQueryParams, MobileCaptureAssetsResponse, BimUploadPayload, BimUploadsQueryParams, CalculateMeasuringOperationRequestPayload, DrawingsRequestPayload, DronesQueryParams, DroneUploadUpdateRequestPayload, FlightImagesQueryParams, Generate360MapRequestPayload, GenerateFloorPayload, InspectionToolRequestPayload, JsonObject, _360WalkV2, _360FloorV2 } from "@evercam/api/types";
4
- import { IngestVersions, IngestTypes } from "@evercam/api/types";
3
+ import type { _360AssetsQueryParams, _360AssetsRequestPayload, _360QueueQueryParams, _360AssetsUploadPayload, _360AssetsResponse, _360AssetsCountsResponse, _360QueueResponse, _360FloorsResponse, DroneQueueResponse, DroneUploadsResponse, IngestUploadInitResponse, BimUploadsResponse, MobileAssetsQueryParams, MobileCaptureAssetsResponse, BimUploadPayload, BimUploadsQueryParams, CalculateMeasuringOperationRequestPayload, DrawingsRequestPayload, DronesQueryParams, DroneCreation, DroneCreated, DroneProcessingTarget, DroneUploadItem, DroneFileAllocation, DroneFileStates, DroneCompletion, DroneDeletion, DroneReprocessResponse, AerialAllocation, AerialUploadStates, AerialShotPage, IngestProcessingProgress, FlightImagesQueryParams, Generate360MapRequestPayload, GenerateFloorPayload, InspectionToolRequestPayload, JsonObject, _360WalkV2, _360FloorV2 } from "@evercam/api/types";
4
+ import { IngestTypes } from "@evercam/api/types";
5
5
  export declare const getIngestApiUrls: (type: string) => string[];
6
6
  export declare const IngestApi: {
7
7
  drone: {
8
- createUpload(projectId: string, params: {
9
- uploadedBy: string;
10
- }): Promise<IngestUploadInitResponse>;
11
- reprocessDrone(id: number, params?: JsonObject): Promise<void>;
8
+ createProcessing(ingestUrl: string, payload: DroneCreation, signal?: AbortSignal): Promise<DroneCreated>;
9
+ getProcessing({ ingestUrl, id }: DroneProcessingTarget, signal?: AbortSignal): Promise<DroneUploadItem>;
10
+ getFlightProcessing(projectId: string, date: string): Promise<DroneUploadItem>;
11
+ allocateFiles({ ingestUrl, id }: DroneProcessingTarget, files: DroneFileAllocation[], signal?: AbortSignal): Promise<DroneFileStates>;
12
+ acknowledgeFiles({ ingestUrl, id }: DroneProcessingTarget, filenames: string[], signal?: AbortSignal): Promise<DroneCompletion>;
13
+ completeProcessing({ ingestUrl, id }: DroneProcessingTarget, signal?: AbortSignal): Promise<DroneCompletion>;
14
+ deleteFiles(id: number, filenames?: string[]): Promise<DroneDeletion>;
15
+ allocateAerialShots({ ingestUrl, id }: DroneProcessingTarget, aerialShots: AerialAllocation[], signal?: AbortSignal): Promise<AerialUploadStates>;
16
+ acknowledgeAerialShots({ ingestUrl, id }: DroneProcessingTarget, filenames: string[], signal?: AbortSignal): Promise<AerialUploadStates>;
17
+ getAerialShots(id: number, params?: {
18
+ cursor?: string;
19
+ limit?: number;
20
+ processingStatus?: string;
21
+ }): Promise<AerialShotPage>;
22
+ deleteAerialShots(id: number, filenames?: string[]): Promise<DroneDeletion>;
23
+ reprocessDrone(id: number, params?: JsonObject): Promise<DroneReprocessResponse>;
12
24
  getDrones(params: {
13
25
  params: Partial<DronesQueryParams>;
14
26
  }): Promise<DroneUploadsResponse>;
27
+ getProcessingProgress(id: number): Promise<IngestProcessingProgress>;
15
28
  getArchive(id: number, params: {
16
29
  dataType: string;
17
- }): Promise<Blob>;
30
+ }): Promise<string>;
18
31
  deleteUpload(id: number): Promise<void>;
19
- prepareForUpload(projectId: string, params: {
20
- uploadedBy: string;
21
- token: string;
22
- }): Promise<void>;
23
- upload(projectId: string, params: {
24
- uploadedBy: string;
25
- token: string;
26
- }, payload: DroneUploadUpdateRequestPayload): Promise<void>;
27
- verifyToken(projectId: string, params: {
28
- token: string;
29
- }): Promise<JsonObject>;
30
32
  calculateMeasuringOperation(projectId: string, params: CalculateMeasuringOperationRequestPayload, ingestUrl?: string): Promise<JsonObject>;
31
33
  inspectionTool(projectId: string, params: InspectionToolRequestPayload): Promise<JsonObject>;
32
- isInspectionEnabled(projectId: string, params?: JsonObject): Promise<JsonObject>;
33
34
  getDroneQueueSize(droneUrl: string): Promise<DroneQueueResponse>;
34
35
  getFlightImages(projectId: string, params: FlightImagesQueryParams): Promise<JsonObject>;
35
36
  checkFlightAvailableFeatures(projectId: string, params: JsonObject): Promise<JsonObject>;
@@ -41,13 +42,15 @@ export declare const IngestApi: {
41
42
  get360AssetsCounts(projectId: string, params: {
42
43
  uploadedBy: string;
43
44
  }): Promise<_360AssetsCountsResponse>;
44
- get360AssetLink(projectId: string, date: string, floor: string, assetType: string, drawingId: string, marker: string | null): Promise<string>;
45
45
  update360(id: number, payload: _360AssetsRequestPayload): Promise<_360WalkV2>;
46
- update360ByProjectDateName(projectId: string, date: string, floor: string, payload: _360AssetsRequestPayload): Promise<_360WalkV2>;
46
+ update360ByProjectDateName(projectId: string, date: string, floor: string, payload: Partial<_360AssetsRequestPayload> & {
47
+ drawingId?: number;
48
+ }): Promise<_360WalkV2>;
47
49
  deleteUpload(id: number): Promise<void>;
48
50
  getArchive(id: number, params: {
49
- dateType: string;
50
- }): Promise<Blob>;
51
+ dataType: string;
52
+ }): Promise<string>;
53
+ get360Progress(id: number): Promise<IngestProcessingProgress>;
51
54
  createUpload(projectId: string, params: _360AssetsRequestPayload): Promise<IngestUploadInitResponse>;
52
55
  upload(id: number, params: JsonObject, payload: _360AssetsUploadPayload): Promise<_360WalkV2>;
53
56
  reprocess360(id: number): Promise<void>;
@@ -64,12 +67,13 @@ export declare const IngestApi: {
64
67
  getDrawingById(id: number, projectExid: string): Promise<_360FloorV2>;
65
68
  updateDrawing(id: number, projectExid: string, payload: GenerateFloorPayload): Promise<_360FloorV2>;
66
69
  deleteDrawing(id: number): Promise<void>;
70
+ restoreDrawing(id: number): Promise<void>;
67
71
  transferWalks(sourceId: number, targetId: number, projectExid: string): Promise<void>;
68
72
  createDrawing(projectExid: string, payload: GenerateFloorPayload, createdBy: string): Promise<_360FloorV2>;
69
73
  fetchDrawingOverlay(id: number, params: {
70
74
  view: boolean;
71
75
  thumbnail?: boolean;
72
- }, onDownloadProgress?: (progress: ProgressEvent) => void): Promise<string>;
76
+ }, onDownloadProgress?: (progress: ProgressEvent) => void, extraConfig?: AxiosRequestConfig): Promise<string>;
73
77
  getFloorArchive(id: number): Promise<string>;
74
78
  generate360map(projectId: string, params: Generate360MapRequestPayload): Promise<JsonObject>;
75
79
  get360QueueSize(ingestUrl: string, params?: _360QueueQueryParams): Promise<_360QueueResponse>;
@@ -88,6 +92,9 @@ export declare const IngestApi: {
88
92
  name: string;
89
93
  }, payload: BimUploadPayload): Promise<void>;
90
94
  };
95
+ webhook: {
96
+ notifyBimUpdated(projectId: string, bimIdentifier: string): Promise<void>;
97
+ };
91
98
  mobileCapture: {
92
99
  getProjectMobileAssets(params: MobileAssetsQueryParams, extraConfig?: AxiosRequestConfig): Promise<MobileCaptureAssetsResponse>;
93
100
  getMobileAssetPhoto(assetId: string | number, params: {
@@ -103,8 +110,6 @@ export declare const IngestApi: {
103
110
  ingestVersion: string;
104
111
  id: number;
105
112
  projectId: string;
106
- consumed: boolean;
107
- token: string;
108
113
  flightDate: string;
109
114
  flightGeolocation: string;
110
115
  modelZip: string;
@@ -115,13 +120,16 @@ export declare const IngestApi: {
115
120
  processingStatus: import("@evercam/api/types").IngestProcessingStatus | string;
116
121
  modelCesiumAssetId: string;
117
122
  updatedAt: string;
118
- hasTusLinks: boolean;
123
+ canDelete: boolean;
124
+ canReprocess: boolean;
125
+ hasSteps: boolean;
126
+ aerialShotsCount: number;
119
127
  } | {
120
128
  ingestVersion: string;
121
129
  archive: string;
122
130
  date: string;
123
131
  deviceSerial: string | null;
124
- endPosition: unknown | null;
132
+ endPosition: string | null;
125
133
  floor: string;
126
134
  floorId: number;
127
135
  id: number;
@@ -137,15 +145,17 @@ export declare const IngestApi: {
137
145
  projectId: string;
138
146
  report: string;
139
147
  processingLog: string;
148
+ hasSteps?: boolean;
140
149
  route: unknown | null;
141
- startPosition: unknown | null;
150
+ startPosition: string | null;
142
151
  tusLinks: unknown | null;
143
152
  updatedAt: string;
144
153
  uploadedBy: string;
145
154
  videoArchive: string;
146
155
  videos: string[];
147
156
  })[]>;
148
- getIngestVersion(ingestUrl: string): IngestVersions;
149
- chooseIngestApiUrl(type: IngestTypes): Promise<string>;
157
+ getIngestNumber(ingestUrl: string): number;
158
+ getIngestVersion(ingestUrl: string): string;
159
+ chooseIngestApiUrl(type: IngestTypes, isTieToNewest?: boolean): Promise<string>;
150
160
  };
151
161
  };
@@ -0,0 +1,15 @@
1
+ import { type ChatListPage, type ChatListParams, type ChatSession } from "@evercam/api/types";
2
+ /**
3
+ * The Evercam Workflows engine, for the admin Chat conversations viewer.
4
+ *
5
+ * The engine speaks camelCase natively, so every call preserves casing rather than
6
+ * running the snake conversion the media API needs. The admin's bearer is attached
7
+ * by the shared request interceptor — an admin resolves `is_admin` on the engine, so
8
+ * `scope=all` returns every user's conversations.
9
+ */
10
+ export declare const WorkflowsApi: {
11
+ chat: {
12
+ listConversations(params?: ChatListParams): Promise<ChatListPage>;
13
+ getConversation(id: string): Promise<ChatSession>;
14
+ };
15
+ };
@@ -1,5 +1,5 @@
1
1
  import { DateType } from "@evercam/api/types/time";
2
- import { GeoPoint, Point3D } from "@evercam/api/types/shared";
2
+ import { GeoPoint, PaginationParams, Point3D } from "@evercam/api/types/shared";
3
3
  export type _360OverlayPosition = {
4
4
  northEast: GeoPoint;
5
5
  northWest: GeoPoint;
@@ -61,6 +61,7 @@ export type _360Floor = {
61
61
  imagesOnlyFeatureFlag?: boolean;
62
62
  forgeBIMFeatureFlag?: boolean;
63
63
  isForgeGravityEnabled?: boolean;
64
+ bimHeight?: number;
64
65
  initialForgeView?: ForgeView | null;
65
66
  enhancedLightFeatureFlag?: boolean;
66
67
  calibrationDetails?: Record<string, unknown>;
@@ -77,7 +78,7 @@ export type _360WalkV2 = {
77
78
  archive: string;
78
79
  date: string;
79
80
  deviceSerial: string | null;
80
- endPosition: unknown | null;
81
+ endPosition: string | null;
81
82
  floor: string;
82
83
  floorId: number;
83
84
  id: number;
@@ -93,8 +94,9 @@ export type _360WalkV2 = {
93
94
  projectId: string;
94
95
  report: string;
95
96
  processingLog: string;
97
+ hasSteps?: boolean;
96
98
  route: unknown | null;
97
- startPosition: unknown | null;
99
+ startPosition: string | null;
98
100
  tusLinks: unknown | null;
99
101
  updatedAt: string;
100
102
  uploadedBy: string;
@@ -113,13 +115,15 @@ export type _360FloorV2 = {
113
115
  overlayPosition: _360OverlayPosition;
114
116
  insertedAt: string;
115
117
  updatedAt: string;
118
+ deletedAt: string | null;
116
119
  };
117
120
  export type _360Scene = {
118
121
  date: string;
119
- dateID: number;
122
+ dateID: string | number;
120
123
  floors: {
121
124
  floorID: _360FloorId;
122
125
  name: string;
126
+ isValidated?: boolean;
123
127
  }[];
124
128
  polarAngle: number;
125
129
  azimuthAngle: number;
@@ -150,24 +154,7 @@ export type _360ProjectListItem = {
150
154
  providerSuffix: string;
151
155
  timeline: string;
152
156
  uniqueId: string;
153
- };
154
- export type _360FullProject = {
155
- dates: _360SceneWithFloors[];
156
- integrationType: string;
157
- projectId: string;
158
- projectName: string;
159
- providerID: string;
160
- providerPrefix: string;
161
- providerSuffix: string;
162
- timeline: string;
163
- uniqueId: string;
164
- };
165
- export type _360FullFloor = _360Floor & {
166
- id: _360FloorId;
167
- name: string;
168
- };
169
- export type _360SceneWithFloors = _360Scene & {
170
- floors: _360FullFloor[];
157
+ requiresValidation?: boolean;
171
158
  };
172
159
  export type _360ProjectJsonResponse = {
173
160
  dates: _360Scene[];
@@ -182,12 +169,25 @@ export type MobileCaptureSnapshot = {
182
169
  thumbnailUrl: string;
183
170
  };
184
171
  export declare enum _360UrlParams {
185
- DateId = "date_id",
172
+ DateId = "dateId",
186
173
  Date = "date",
187
174
  Floor = "floor",
188
175
  Marker = "marker",
189
176
  PolarAngle = "polarAngle",
190
- AzimuthAngle = "azimuthAngle"
177
+ AzimuthAngle = "azimuthAngle",
178
+ Zoom = "zoom",
179
+ User = "user",
180
+ ViewerMode = "viewer_mode",
181
+ ProjectId = "projectId",
182
+ Unit = "unit",
183
+ LockDate = "lockDate",
184
+ LockFloor = "lockFloor",
185
+ LockMarker = "lockMarker",
186
+ IsWidget = "isWidget",
187
+ MediaLocked = "mediaLocked",
188
+ Debug = "debug",
189
+ RequiresValidation = "requires_validation",
190
+ CommentId = "comment_id"
191
191
  }
192
192
  export declare enum _360AssetType {
193
193
  Video = "video",
@@ -201,11 +201,6 @@ export declare enum _360AssetLabel {
201
201
  Walks = "walks",
202
202
  MobilePhotos = "mobilePhotos"
203
203
  }
204
- export declare enum _360Feature {
205
- BIM = "BIM",
206
- Minimap = "Minimap",
207
- Minimodel = "Minimodel"
208
- }
209
204
  export declare enum _360IntergrationType {
210
205
  Evercam = "Evercam",
211
206
  Matterport = "Matterport",
@@ -216,14 +211,14 @@ export declare enum _360IntergrationType {
216
211
  export declare enum PathMarkerColor {
217
212
  Start = "#00e74c",
218
213
  End = "#fd7567",
214
+ Anchor = "#ffb300",
219
215
  Default = "#2196F3"
220
216
  }
221
- export type _360AssetsQueryParams = {
222
- page: number;
223
- limit: number;
217
+ export type _360AssetsQueryParams = PaginationParams & {
224
218
  projectId: string;
225
219
  date: DateType;
226
220
  floor: string;
221
+ name: string;
227
222
  id: string;
228
223
  };
229
224
  export type _360AssetsRequestPayload = {
@@ -232,7 +227,7 @@ export type _360AssetsRequestPayload = {
232
227
  floor: string;
233
228
  uploadedBy?: string;
234
229
  };
235
- export type DrawingsRequestPayload = {
230
+ export type DrawingsRequestPayload = PaginationParams & {
236
231
  projectId?: string;
237
232
  name?: string;
238
233
  changedBy?: string;
@@ -240,10 +235,9 @@ export type DrawingsRequestPayload = {
240
235
  startDate?: string;
241
236
  endDate?: string;
242
237
  id?: number;
243
- page?: number;
244
- limit?: number;
245
238
  paginate?: boolean;
246
239
  withAsset?: boolean;
240
+ includeDeleted?: boolean;
247
241
  };
248
242
  export type GenerateFloorPayload = {
249
243
  overlay?: {
@@ -267,16 +261,16 @@ export type _360AssetsUploadPayload = {
267
261
  title: string;
268
262
  fileExtension: string;
269
263
  }[];
270
- deviceSerial: string;
271
- startPosition: string;
272
- endPosition: string;
273
- isTimelapse: boolean;
274
- isImagesOnly: boolean;
264
+ deviceSerial?: string;
265
+ startPosition?: string;
266
+ endPosition?: string;
267
+ isTimelapse?: boolean;
268
+ isImagesOnly?: boolean;
275
269
  };
276
270
  export type Generate360MapRequestPayload = {
277
- dateId: string;
271
+ dateId: string | number;
278
272
  floorId: string;
279
- cameraOffset: string;
273
+ cameraOffset: string | number;
280
274
  startPoint: string;
281
275
  endPoint: string;
282
276
  drawingId?: number;
@@ -287,4 +281,85 @@ export type Generate360MapRequestPayload = {
287
281
  z: number;
288
282
  };
289
283
  }>;
284
+ startPointIndex?: number;
285
+ endPointIndex?: number;
286
+ };
287
+ export declare enum EModelsType {
288
+ FBX = "FBX",
289
+ PointCloud = "PLY"
290
+ }
291
+ export type _360FloorRef = {
292
+ projectID: string;
293
+ dateID: string | number;
294
+ floorID: _360FloorId;
295
+ };
296
+ export type _360Vector3 = {
297
+ x: number;
298
+ y: number;
299
+ z: number;
300
+ };
301
+ export type _360MarkerData = {
302
+ cameraPosition: _360Vector3;
303
+ nextRoomId: string;
304
+ position: _360Vector3;
305
+ geolocation?: {
306
+ latitude: number;
307
+ longitude: number;
308
+ };
309
+ rotation: {
310
+ _order: string;
311
+ _x: number;
312
+ _y: number;
313
+ _z: number;
314
+ isEuler: boolean;
315
+ x?: number;
316
+ y?: number;
317
+ z?: number;
318
+ };
319
+ };
320
+ export type _360Route = {
321
+ overlayID?: number;
322
+ track?: string;
323
+ cameraHeadingOffset?: number;
324
+ };
325
+ export type _360CalibrationDetails = {
326
+ baseOriginOf360Viewer?: _360Vector3;
327
+ baseOriginOfForgeViewer?: _360Vector3;
328
+ rotationMatrix?: {
329
+ elements: number[];
330
+ };
331
+ scaleMatrix?: {
332
+ elements: number[];
333
+ };
334
+ };
335
+ export type _360FloorData = {
336
+ _3DMarkers: _360MarkerData[];
337
+ fbxModel: string | null;
338
+ fbxModelHQ: string | null;
339
+ pointCloudModelHQ: string | null;
340
+ initialMarker: string;
341
+ cameraRotation: _360CameraRotation;
342
+ steps: number;
343
+ route: _360Route | null;
344
+ sceneScale: number;
345
+ modelViewerFeatureFlag: boolean;
346
+ imagesOnlyFeatureFlag: boolean;
347
+ forgeBIMFeatureFlag: boolean;
348
+ isForgeGravityEnabled: boolean;
349
+ bimHeight?: number | null;
350
+ initialForgeView: ForgeView | null;
351
+ calibrationDetails: _360CalibrationDetails;
352
+ enhancedLightFeatureFlag: boolean;
353
+ };
354
+ export type _360PinData = {
355
+ position: _360Vector3;
356
+ pinType: string;
357
+ name: string;
358
+ pinId?: string;
359
+ cameraExid?: string;
360
+ currentRoom?: string;
361
+ cameraRotation?: {
362
+ polarAngle: number;
363
+ azimuthAngle: number;
364
+ };
290
365
  };
@@ -41,7 +41,7 @@ export type AdminInvite = {
41
41
  resourceId: string;
42
42
  assigner: AdminInviteAssigner;
43
43
  sentCount: number;
44
- lastSentAt: string;
44
+ lastSentAt: string | null;
45
45
  authContext: AdminInviteAuthContext;
46
46
  statusName: string;
47
47
  };
@@ -1,7 +1,9 @@
1
+ import { PaginatedItems, PaginationParams } from "@evercam/api/types";
1
2
  export declare enum AiApp {
2
3
  GateReport = "gate_report",
3
4
  Ppe = "ppe",
4
- SiteAnalytics = "site_analytics"
5
+ SiteAnalytics = "site_analytics",
6
+ Observations360 = "observations_360"
5
7
  }
6
8
  export declare enum AiProvider {
7
9
  Gemini = "gemini",
@@ -11,7 +13,8 @@ export declare enum AiProvider {
11
13
  export declare enum AiConfigsPromptDialogMode {
12
14
  Create = "create",
13
15
  Edit = "edit",
14
- View = "view"
16
+ View = "view",
17
+ Subprompt = "subprompt"
15
18
  }
16
19
  export declare enum AiConfigsKeyDialogMode {
17
20
  Create = "create",
@@ -45,6 +48,11 @@ export declare enum AiPromptModel {
45
48
  ClaudeSonnet46 = "claude-sonnet-4-6",
46
49
  ClaudeHaiku45 = "claude-haiku-4-5"
47
50
  }
51
+ export declare enum AiPromptType {
52
+ Prompt = "prompt",
53
+ Parent = "parent",
54
+ Subprompt = "subprompt"
55
+ }
48
56
  export interface AiPrompt {
49
57
  id: number;
50
58
  title: string | null;
@@ -56,6 +64,9 @@ export interface AiPrompt {
56
64
  createdBy: string;
57
65
  createdAt: string;
58
66
  updatedAt: string;
67
+ promptType: AiPromptType;
68
+ parentId: number | null;
69
+ subpromptCount: number;
59
70
  }
60
71
  export interface AiPromptCreatePayload {
61
72
  title?: string | null;
@@ -64,6 +75,7 @@ export interface AiPromptCreatePayload {
64
75
  model?: string | null;
65
76
  prompt: string;
66
77
  outputSchema?: Record<string, unknown> | null;
78
+ promptType?: AiPromptType.Prompt | AiPromptType.Parent;
67
79
  }
68
80
  export interface AiPromptUpdatePayload {
69
81
  title?: string | null;
@@ -73,23 +85,23 @@ export interface AiPromptUpdatePayload {
73
85
  prompt?: string;
74
86
  outputSchema?: Record<string, unknown> | null;
75
87
  }
76
- export type AiPromptQueryParams = {
88
+ export type AiPromptQueryParams = PaginationParams & {
77
89
  app?: string;
78
90
  purpose?: string;
79
91
  model?: string;
80
92
  search?: string;
81
93
  createdBy?: string;
82
- page?: number;
83
- limit?: number;
94
+ promptType?: AiPromptType;
95
+ includeSubprompts?: boolean;
84
96
  };
85
- export interface AiPromptListResponse {
86
- items: AiPrompt[];
87
- total: number;
88
- page: number;
89
- limit: number;
90
- from: number;
91
- to: number;
97
+ export interface AiSubpromptCreatePayload {
98
+ title?: string | null;
99
+ purpose: string;
100
+ model?: string | null;
101
+ prompt: string;
102
+ outputSchema?: Record<string, unknown> | null;
92
103
  }
104
+ export type AiPromptListResponse = PaginatedItems<AiPrompt>;
93
105
  export interface AiPromptCreateResponse {
94
106
  created: boolean;
95
107
  data: AiPrompt;
@@ -152,3 +164,81 @@ export interface AiApiKeyDeleteResponse {
152
164
  count: number;
153
165
  message: string;
154
166
  }
167
+ export declare enum AiObservationFeasibilityStatus {
168
+ Prod = "prod",
169
+ Beta = "beta",
170
+ Parked = "parked"
171
+ }
172
+ export declare enum AiObservationTimeDetection {
173
+ PerSecond = "per_second",
174
+ PerMinute = "per_minute",
175
+ Hourly = "hourly",
176
+ Daily = "daily"
177
+ }
178
+ export interface AiObservationFeasibilityConfig {
179
+ bg: string;
180
+ fg: string;
181
+ border: string;
182
+ label: string;
183
+ }
184
+ export declare const AI_OBSERVATION_FEASIBILITY_CONFIGS: Record<AiObservationFeasibilityStatus, AiObservationFeasibilityConfig>;
185
+ export interface AiObservationType {
186
+ id: number;
187
+ observationCode: string;
188
+ name: string;
189
+ description: string | null;
190
+ type: string;
191
+ rules: Record<string, unknown> | null;
192
+ timeDetection: string | null;
193
+ every: number | null;
194
+ severity: number | null;
195
+ feasibilityStatus: AiObservationFeasibilityStatus;
196
+ promptId: number | null;
197
+ promptName: string | null;
198
+ insertedAt: string;
199
+ updatedAt: string;
200
+ }
201
+ export interface AiObservationTypeCreatePayload {
202
+ observationCode: string;
203
+ name: string;
204
+ description?: string | null;
205
+ type: string;
206
+ rules?: Record<string, unknown> | null;
207
+ timeDetection?: string | null;
208
+ every?: number | null;
209
+ severity?: number | null;
210
+ feasibilityStatus: AiObservationFeasibilityStatus;
211
+ promptId?: number | null;
212
+ }
213
+ export type AiObservationTypeUpdatePayload = Partial<Omit<AiObservationTypeCreatePayload, "observationCode">>;
214
+ export type AiObservationTypeQueryParams = {
215
+ search?: string;
216
+ feasibilityStatus?: string;
217
+ sourceType?: string;
218
+ type?: string;
219
+ page?: number;
220
+ limit?: number;
221
+ };
222
+ export interface AiObservationTypeListResponse {
223
+ items: AiObservationType[];
224
+ total: number;
225
+ page: number;
226
+ limit: number;
227
+ from: number;
228
+ to: number;
229
+ }
230
+ export interface AiObservationTypeCreateResponse {
231
+ created: boolean;
232
+ data: AiObservationType;
233
+ message: string;
234
+ }
235
+ export interface AiObservationTypeUpdateResponse {
236
+ updated: boolean;
237
+ id: number | string;
238
+ message: string;
239
+ }
240
+ export interface AiObservationTypeDeleteResponse {
241
+ deleted: boolean;
242
+ count: number;
243
+ message: string;
244
+ }