@evercam/api 1.0.0-9a767ebbe → 1.0.0-9c7d9f97f

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 (68) hide show
  1. package/README.md +1 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +67 -35
  3. package/dist/api/api/adminApi.d.ts +25 -20
  4. package/dist/api/api/aiApi.d.ts +125 -2
  5. package/dist/api/api/authzApi.d.ts +4 -1
  6. package/dist/api/api/evercamApi.d.ts +41 -13
  7. package/dist/api/api/evercamLabsApi.d.ts +5 -16
  8. package/dist/api/api/index.d.ts +1 -0
  9. package/dist/api/api/ingestApi.d.ts +22 -9
  10. package/dist/api/api/workflowsApi.d.ts +15 -0
  11. package/dist/api/types/360.d.ts +126 -43
  12. package/dist/api/types/aiConfigs.d.ts +244 -0
  13. package/dist/api/types/analytics.d.ts +48 -33
  14. package/dist/api/types/anpr.d.ts +31 -2
  15. package/dist/api/types/auditLogs.d.ts +18 -1
  16. package/dist/api/types/authz.d.ts +71 -0
  17. package/dist/api/types/automation.d.ts +32 -4
  18. package/dist/api/types/axios.d.ts +9 -9
  19. package/dist/api/types/bim.d.ts +29 -6
  20. package/dist/api/types/camera.d.ts +34 -24
  21. package/dist/api/types/comments.d.ts +16 -7
  22. package/dist/api/types/company.d.ts +1 -2
  23. package/dist/api/types/compare.d.ts +1 -1
  24. package/dist/api/types/connector.d.ts +2 -0
  25. package/dist/api/types/detections.d.ts +3 -10
  26. package/dist/api/types/drone.d.ts +7 -7
  27. package/dist/api/types/errors.d.ts +13 -1
  28. package/dist/api/types/gateReport.d.ts +1 -11
  29. package/dist/api/types/gateReportManagement.d.ts +170 -0
  30. package/dist/api/types/hammertech.d.ts +98 -0
  31. package/dist/api/types/index.d.ts +8 -2
  32. package/dist/api/types/ingest.d.ts +90 -3
  33. package/dist/api/types/kit.d.ts +43 -51
  34. package/dist/api/types/media.d.ts +7 -2
  35. package/dist/api/types/notification.d.ts +52 -2
  36. package/dist/api/types/observationEvents.d.ts +141 -0
  37. package/dist/api/types/observations.d.ts +84 -0
  38. package/dist/api/types/planner.d.ts +3 -11
  39. package/dist/api/types/posthog.d.ts +20 -0
  40. package/dist/api/types/project.d.ts +14 -2
  41. package/dist/api/types/recording.d.ts +7 -13
  42. package/dist/api/types/ring.d.ts +16 -16
  43. package/dist/api/types/roi.d.ts +2 -10
  44. package/dist/api/types/routeParams.d.ts +1 -0
  45. package/dist/api/types/shared.d.ts +3 -23
  46. package/dist/api/types/shares.d.ts +0 -13
  47. package/dist/api/types/siteAnalytics.d.ts +3 -5
  48. package/dist/api/types/siteAnalyticsManagement.d.ts +127 -0
  49. package/dist/api/types/siteView.d.ts +6 -2
  50. package/dist/api/types/snapshots.d.ts +13 -0
  51. package/dist/api/types/socket.d.ts +4 -0
  52. package/dist/api/types/storyblok.d.ts +0 -13
  53. package/dist/api/types/timelapse.d.ts +2 -13
  54. package/dist/api/types/user.d.ts +16 -4
  55. package/dist/api/types/workflows.d.ts +108 -0
  56. package/dist/api/utils.d.ts +1 -1
  57. package/dist/index.js +1555 -862
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.umd.cjs +1 -1
  60. package/dist/index.umd.cjs.map +1 -1
  61. package/dist/shared/types/components.d.ts +246 -35
  62. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  63. package/dist/shared/types/imagePlayer.d.ts +8 -1
  64. package/dist/shared/types/index.d.ts +2 -0
  65. package/dist/shared/types/observations.d.ts +25 -0
  66. package/package.json +4 -2
  67. package/dist/api/types/copilot.d.ts +0 -162
  68. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -1,23 +1,12 @@
1
- import { CameraExid, CopilotConversation, CopilotMessage, CopilotMessageStep, FeedbackPayload, GrafanaKitMetrics, LabsPaginationParams, LuminanceReading, PaginatedItems, ActiveUsersResponsePayload, ActiveUsersRequestPayload, HeatmapIntersectionsRequestParams, SmartSearchHeatmapPoint, SiteAnalyticsProcessingStatusPayload, SiteAnalyticsProcessingStatus } from "@evercam/api/types";
2
- import { GrafanaMetricId, KitMetricPeriod } from "@evercam/api/types";
3
- import type { SwrRequestConfig } from "@evercam/api/types";
1
+ import { CameraExid, GrafanaKitMetrics, LuminanceReading, PaginatedItems, ActiveUsersResponsePayload, ActiveUsersRequestPayload, PosthogUsersRequestParams, PosthogUsersResponse, HeatmapIntersectionsRequestParams, SmartSearchHeatmapPoint, SiteAnalyticsProcessingStatusPayload, SiteAnalyticsProcessingStatus, SwrRequestConfig, GrafanaMetricId, KitMetricPeriod } from "@evercam/api/types";
4
2
  export declare function getLabsBaseUrl(): string | null | undefined;
5
3
  export declare const EvercamLabsApi: {
6
4
  posthog: {
7
5
  getEvents(params: any): Promise<PaginatedItems<any>>;
8
- getUsers(params: any): Promise<any>;
9
- getActiveUsers(params: ActiveUsersRequestPayload): Promise<ActiveUsersResponsePayload>;
10
- };
11
- copilot: {
12
- getAllConversations(params: LabsPaginationParams & {
13
- cameraExid?: string;
14
- projectExid?: string;
15
- user?: string;
16
- }): Promise<PaginatedItems<CopilotConversation>>;
17
- getOneConversation(conversationId: number): Promise<PaginatedItems<CopilotConversation>>;
18
- getConversationMessages(conversationId: number, params: LabsPaginationParams): Promise<PaginatedItems<CopilotMessage>>;
19
- getMessageSteps(message: CopilotMessage): Promise<CopilotMessageStep[]>;
20
- submitMessageFeedback({ conversationId, messageId, ...params }: FeedbackPayload): Promise<import("axios").AxiosResponse<any, any>>;
6
+ getUsers(params: PosthogUsersRequestParams): Promise<PosthogUsersResponse>;
7
+ getActiveUsers(params: ActiveUsersRequestPayload): Promise<{
8
+ data: ActiveUsersResponsePayload;
9
+ }>;
21
10
  };
22
11
  siteAnalytics: {
23
12
  getProcessingStatus(params?: SiteAnalyticsProcessingStatusPayload, config?: SwrRequestConfig<SiteAnalyticsProcessingStatus[]>): Promise<SiteAnalyticsProcessingStatus[]>;
@@ -11,3 +11,4 @@ export * from "./ptzApi";
11
11
  export * from "./ingestApi";
12
12
  export * from "./exNvrApi";
13
13
  export * from "./authzApi";
14
+ export * from "./workflowsApi";
@@ -1,6 +1,6 @@
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";
3
+ import type { _360AssetsQueryParams, _360AssetsRequestPayload, _360QueueQueryParams, _360AssetsUploadPayload, _360AssetsResponse, _360AssetsCountsResponse, _360QueueResponse, _360FloorsResponse, DroneQueueResponse, DroneUploadsResponse, IngestUploadInitResponse, BimUploadsResponse, MobileAssetsQueryParams, MobileCaptureAssetsResponse, BimUploadPayload, BimUploadsQueryParams, CalculateMeasuringOperationRequestPayload, DrawingsRequestPayload, DronesQueryParams, DroneUploadUpdateRequestPayload, IngestProcessingProgress, FlightImagesQueryParams, Generate360MapRequestPayload, GenerateFloorPayload, InspectionToolRequestPayload, JsonObject, _360WalkV2, _360FloorV2 } from "@evercam/api/types";
4
4
  import { IngestVersions, IngestTypes } from "@evercam/api/types";
5
5
  export declare const getIngestApiUrls: (type: string) => string[];
6
6
  export declare const IngestApi: {
@@ -12,6 +12,7 @@ export declare const IngestApi: {
12
12
  getDrones(params: {
13
13
  params: Partial<DronesQueryParams>;
14
14
  }): Promise<DroneUploadsResponse>;
15
+ getProcessingProgress(id: number): Promise<IngestProcessingProgress>;
15
16
  getArchive(id: number, params: {
16
17
  dataType: string;
17
18
  }): Promise<Blob>;
@@ -27,7 +28,7 @@ export declare const IngestApi: {
27
28
  verifyToken(projectId: string, params: {
28
29
  token: string;
29
30
  }): Promise<JsonObject>;
30
- calculateMeasuringOperation(projectId: string, params: CalculateMeasuringOperationRequestPayload): Promise<JsonObject>;
31
+ calculateMeasuringOperation(projectId: string, params: CalculateMeasuringOperationRequestPayload, ingestUrl?: string): Promise<JsonObject>;
31
32
  inspectionTool(projectId: string, params: InspectionToolRequestPayload): Promise<JsonObject>;
32
33
  isInspectionEnabled(projectId: string, params?: JsonObject): Promise<JsonObject>;
33
34
  getDroneQueueSize(droneUrl: string): Promise<DroneQueueResponse>;
@@ -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,11 +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
- }, onDownloadProgress: (progress: ProgressEvent) => void): Promise<Blob>;
75
+ thumbnail?: boolean;
76
+ }, onDownloadProgress?: (progress: ProgressEvent) => void, extraConfig?: AxiosRequestConfig): Promise<string>;
72
77
  getFloorArchive(id: number): Promise<string>;
73
78
  generate360map(projectId: string, params: Generate360MapRequestPayload): Promise<JsonObject>;
74
79
  get360QueueSize(ingestUrl: string, params?: _360QueueQueryParams): Promise<_360QueueResponse>;
@@ -87,6 +92,9 @@ export declare const IngestApi: {
87
92
  name: string;
88
93
  }, payload: BimUploadPayload): Promise<void>;
89
94
  };
95
+ webhook: {
96
+ notifyBimUpdated(projectId: string, bimIdentifier: string): Promise<void>;
97
+ };
90
98
  mobileCapture: {
91
99
  getProjectMobileAssets(params: MobileAssetsQueryParams, extraConfig?: AxiosRequestConfig): Promise<MobileCaptureAssetsResponse>;
92
100
  getMobileAssetPhoto(assetId: string | number, params: {
@@ -109,17 +117,20 @@ export declare const IngestApi: {
109
117
  modelZip: string;
110
118
  orthomosaicZip: string;
111
119
  reportPdf: string;
120
+ processingLog: string;
112
121
  uploadedBy: string;
113
122
  processingStatus: import("@evercam/api/types").IngestProcessingStatus | string;
114
123
  modelCesiumAssetId: string;
115
124
  updatedAt: string;
116
125
  hasTusLinks: boolean;
126
+ hasSteps: boolean;
127
+ aerialShots: import("@evercam/api/types").AerialShotItem[];
117
128
  } | {
118
129
  ingestVersion: string;
119
130
  archive: string;
120
131
  date: string;
121
132
  deviceSerial: string | null;
122
- endPosition: unknown | null;
133
+ endPosition: string | null;
123
134
  floor: string;
124
135
  floorId: number;
125
136
  id: number;
@@ -134,8 +145,10 @@ export declare const IngestApi: {
134
145
  processingStatus: string;
135
146
  projectId: string;
136
147
  report: string;
148
+ processingLog: string;
149
+ hasSteps?: boolean;
137
150
  route: unknown | null;
138
- startPosition: unknown | null;
151
+ startPosition: string | null;
139
152
  tusLinks: unknown | null;
140
153
  updatedAt: string;
141
154
  uploadedBy: string;
@@ -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;
@@ -92,8 +93,10 @@ export type _360WalkV2 = {
92
93
  processingStatus: string;
93
94
  projectId: string;
94
95
  report: string;
96
+ processingLog: string;
97
+ hasSteps?: boolean;
95
98
  route: unknown | null;
96
- startPosition: unknown | null;
99
+ startPosition: string | null;
97
100
  tusLinks: unknown | null;
98
101
  updatedAt: string;
99
102
  uploadedBy: string;
@@ -112,13 +115,15 @@ export type _360FloorV2 = {
112
115
  overlayPosition: _360OverlayPosition;
113
116
  insertedAt: string;
114
117
  updatedAt: string;
118
+ deletedAt: string | null;
115
119
  };
116
120
  export type _360Scene = {
117
121
  date: string;
118
- dateID: number;
122
+ dateID: string | number;
119
123
  floors: {
120
124
  floorID: _360FloorId;
121
125
  name: string;
126
+ isValidated?: boolean;
122
127
  }[];
123
128
  polarAngle: number;
124
129
  azimuthAngle: number;
@@ -149,24 +154,7 @@ export type _360ProjectListItem = {
149
154
  providerSuffix: string;
150
155
  timeline: string;
151
156
  uniqueId: string;
152
- };
153
- export type _360FullProject = {
154
- dates: _360SceneWithFloors[];
155
- integrationType: string;
156
- projectId: string;
157
- projectName: string;
158
- providerID: string;
159
- providerPrefix: string;
160
- providerSuffix: string;
161
- timeline: string;
162
- uniqueId: string;
163
- };
164
- export type _360FullFloor = _360Floor & {
165
- id: _360FloorId;
166
- name: string;
167
- };
168
- export type _360SceneWithFloors = _360Scene & {
169
- floors: _360FullFloor[];
157
+ requiresValidation?: boolean;
170
158
  };
171
159
  export type _360ProjectJsonResponse = {
172
160
  dates: _360Scene[];
@@ -181,12 +169,25 @@ export type MobileCaptureSnapshot = {
181
169
  thumbnailUrl: string;
182
170
  };
183
171
  export declare enum _360UrlParams {
184
- DateId = "date_id",
172
+ DateId = "dateId",
185
173
  Date = "date",
186
174
  Floor = "floor",
187
175
  Marker = "marker",
188
176
  PolarAngle = "polarAngle",
189
- 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"
190
191
  }
191
192
  export declare enum _360AssetType {
192
193
  Video = "video",
@@ -200,11 +201,6 @@ export declare enum _360AssetLabel {
200
201
  Walks = "walks",
201
202
  MobilePhotos = "mobilePhotos"
202
203
  }
203
- export declare enum _360Feature {
204
- BIM = "BIM",
205
- Minimap = "Minimap",
206
- Minimodel = "Minimodel"
207
- }
208
204
  export declare enum _360IntergrationType {
209
205
  Evercam = "Evercam",
210
206
  Matterport = "Matterport",
@@ -217,12 +213,11 @@ export declare enum PathMarkerColor {
217
213
  End = "#fd7567",
218
214
  Default = "#2196F3"
219
215
  }
220
- export type _360AssetsQueryParams = {
221
- page: number;
222
- limit: number;
223
- projectID: string;
216
+ export type _360AssetsQueryParams = PaginationParams & {
217
+ projectId: string;
224
218
  date: DateType;
225
219
  floor: string;
220
+ name: string;
226
221
  id: string;
227
222
  };
228
223
  export type _360AssetsRequestPayload = {
@@ -231,7 +226,7 @@ export type _360AssetsRequestPayload = {
231
226
  floor: string;
232
227
  uploadedBy?: string;
233
228
  };
234
- export type DrawingsRequestPayload = {
229
+ export type DrawingsRequestPayload = PaginationParams & {
235
230
  projectId?: string;
236
231
  name?: string;
237
232
  changedBy?: string;
@@ -239,10 +234,9 @@ export type DrawingsRequestPayload = {
239
234
  startDate?: string;
240
235
  endDate?: string;
241
236
  id?: number;
242
- page?: number;
243
- limit?: number;
244
237
  paginate?: boolean;
245
238
  withAsset?: boolean;
239
+ includeDeleted?: boolean;
246
240
  };
247
241
  export type GenerateFloorPayload = {
248
242
  overlay?: {
@@ -266,16 +260,105 @@ export type _360AssetsUploadPayload = {
266
260
  title: string;
267
261
  fileExtension: string;
268
262
  }[];
269
- deviceSerial: string;
270
- startPosition: string;
271
- endPosition: string;
272
- isTimelapse: boolean;
273
- isImagesOnly: boolean;
263
+ deviceSerial?: string;
264
+ startPosition?: string;
265
+ endPosition?: string;
266
+ isTimelapse?: boolean;
267
+ isImagesOnly?: boolean;
274
268
  };
275
269
  export type Generate360MapRequestPayload = {
276
- dateId: string;
270
+ dateId: string | number;
277
271
  floorId: string;
278
- cameraOffset: string;
272
+ cameraOffset: string | number;
279
273
  startPoint: string;
280
274
  endPoint: string;
275
+ drawingId?: number;
276
+ markers?: Array<{
277
+ position: {
278
+ x: number;
279
+ y: number;
280
+ z: number;
281
+ };
282
+ }>;
283
+ startPointIndex?: number;
284
+ endPointIndex?: number;
285
+ };
286
+ export declare enum EModelsType {
287
+ FBX = "FBX",
288
+ PointCloud = "PLY"
289
+ }
290
+ export type _360FloorRef = {
291
+ projectID: string;
292
+ dateID: string | number;
293
+ floorID: _360FloorId;
294
+ };
295
+ export type _360Vector3 = {
296
+ x: number;
297
+ y: number;
298
+ z: number;
299
+ };
300
+ export type _360MarkerData = {
301
+ cameraPosition: _360Vector3;
302
+ nextRoomId: string;
303
+ position: _360Vector3;
304
+ geolocation?: {
305
+ latitude: number;
306
+ longitude: number;
307
+ };
308
+ rotation: {
309
+ _order: string;
310
+ _x: number;
311
+ _y: number;
312
+ _z: number;
313
+ isEuler: boolean;
314
+ x?: number;
315
+ y?: number;
316
+ z?: number;
317
+ };
318
+ };
319
+ export type _360Route = {
320
+ overlayID?: number;
321
+ track?: string;
322
+ cameraHeadingOffset?: number;
323
+ };
324
+ export type _360CalibrationDetails = {
325
+ baseOriginOf360Viewer?: _360Vector3;
326
+ baseOriginOfForgeViewer?: _360Vector3;
327
+ rotationMatrix?: {
328
+ elements: number[];
329
+ };
330
+ scaleMatrix?: {
331
+ elements: number[];
332
+ };
333
+ };
334
+ export type _360FloorData = {
335
+ _3DMarkers: _360MarkerData[];
336
+ fbxModel: string | null;
337
+ fbxModelHQ: string | null;
338
+ pointCloudModelHQ: string | null;
339
+ initialMarker: string;
340
+ cameraRotation: _360CameraRotation;
341
+ steps: number;
342
+ route: _360Route | null;
343
+ sceneScale: number;
344
+ modelViewerFeatureFlag: boolean;
345
+ imagesOnlyFeatureFlag: boolean;
346
+ forgeBIMFeatureFlag: boolean;
347
+ isForgeGravityEnabled: boolean;
348
+ bimHeight?: number | null;
349
+ initialForgeView: ForgeView | null;
350
+ calibrationDetails: _360CalibrationDetails;
351
+ enhancedLightFeatureFlag: boolean;
352
+ };
353
+ export type _360PinData = {
354
+ position: _360Vector3;
355
+ pinType: string;
356
+ name: string;
357
+ pinId?: string;
358
+ cameraExid?: string;
359
+ currentRoom?: string;
360
+ cameraRotation?: {
361
+ polarAngle: number;
362
+ azimuthAngle: number;
363
+ };
281
364
  };
@@ -0,0 +1,244 @@
1
+ import { PaginatedItems, PaginationParams } from "@evercam/api/types";
2
+ export declare enum AiApp {
3
+ GateReport = "gate_report",
4
+ Ppe = "ppe",
5
+ SiteAnalytics = "site_analytics",
6
+ Observations360 = "observations_360"
7
+ }
8
+ export declare enum AiProvider {
9
+ Gemini = "gemini",
10
+ OpenAi = "openai",
11
+ Anthropic = "anthropic"
12
+ }
13
+ export declare enum AiConfigsPromptDialogMode {
14
+ Create = "create",
15
+ Edit = "edit",
16
+ View = "view",
17
+ Subprompt = "subprompt"
18
+ }
19
+ export declare enum AiConfigsKeyDialogMode {
20
+ Create = "create",
21
+ Rotate = "rotate",
22
+ Rename = "rename"
23
+ }
24
+ export interface AiAppConfig {
25
+ bg: string;
26
+ fg: string;
27
+ border: string;
28
+ icon: string;
29
+ }
30
+ export declare const AI_APP_CONFIGS: Record<AiApp | "generic", AiAppConfig>;
31
+ export interface AiProviderConfig {
32
+ bg: string;
33
+ fg: string;
34
+ icon: string;
35
+ }
36
+ export declare const AI_PROVIDER_CONFIGS: Record<AiProvider, AiProviderConfig>;
37
+ export declare enum AiPromptModel {
38
+ Gemini3Pro = "gemini-3-pro",
39
+ Gemini3FlashPreview = "gemini-3-flash-preview",
40
+ Gemini25Pro = "gemini-2.5-pro",
41
+ Gemini25Flash = "gemini-2.5-flash",
42
+ Gemini20Flash = "gemini-2.0-flash",
43
+ Gpt5 = "gpt-5",
44
+ Gpt5Mini = "gpt-5-mini",
45
+ Gpt4o = "gpt-4o",
46
+ Gpt4oMini = "gpt-4o-mini",
47
+ ClaudeOpus45 = "claude-opus-4-5",
48
+ ClaudeSonnet46 = "claude-sonnet-4-6",
49
+ ClaudeHaiku45 = "claude-haiku-4-5"
50
+ }
51
+ export declare enum AiPromptType {
52
+ Prompt = "prompt",
53
+ Parent = "parent",
54
+ Subprompt = "subprompt"
55
+ }
56
+ export interface AiPrompt {
57
+ id: number;
58
+ title: string | null;
59
+ purpose: string | null;
60
+ app: string | null;
61
+ model: string | null;
62
+ prompt: string;
63
+ outputSchema: Record<string, unknown> | null;
64
+ createdBy: string;
65
+ createdAt: string;
66
+ updatedAt: string;
67
+ promptType: AiPromptType;
68
+ parentId: number | null;
69
+ subpromptCount: number;
70
+ }
71
+ export interface AiPromptCreatePayload {
72
+ title?: string | null;
73
+ purpose: string;
74
+ app: string;
75
+ model?: string | null;
76
+ prompt: string;
77
+ outputSchema?: Record<string, unknown> | null;
78
+ promptType?: AiPromptType.Prompt | AiPromptType.Parent;
79
+ }
80
+ export interface AiPromptUpdatePayload {
81
+ title?: string | null;
82
+ purpose?: string;
83
+ app?: string;
84
+ model?: string | null;
85
+ prompt?: string;
86
+ outputSchema?: Record<string, unknown> | null;
87
+ }
88
+ export type AiPromptQueryParams = PaginationParams & {
89
+ app?: string;
90
+ purpose?: string;
91
+ model?: string;
92
+ search?: string;
93
+ createdBy?: string;
94
+ promptType?: AiPromptType;
95
+ includeSubprompts?: boolean;
96
+ };
97
+ export interface AiSubpromptCreatePayload {
98
+ title?: string | null;
99
+ purpose: string;
100
+ model?: string | null;
101
+ prompt: string;
102
+ outputSchema?: Record<string, unknown> | null;
103
+ }
104
+ export type AiPromptListResponse = PaginatedItems<AiPrompt>;
105
+ export interface AiPromptCreateResponse {
106
+ created: boolean;
107
+ data: AiPrompt;
108
+ message: string;
109
+ }
110
+ export interface AiPromptUpdateResponse {
111
+ updated: boolean;
112
+ id: number | string;
113
+ message: string;
114
+ }
115
+ export interface AiPromptDeleteResponse {
116
+ deleted: boolean;
117
+ count: number;
118
+ message: string;
119
+ }
120
+ export interface AiApiKey {
121
+ id: number;
122
+ projectExid: string;
123
+ provider: string;
124
+ name: string;
125
+ purpose: string;
126
+ enabled: boolean;
127
+ autoGenerated: boolean;
128
+ firstUsedAt: string | null;
129
+ lastUsedAt: string | null;
130
+ insertedAt: string;
131
+ updatedAt: string;
132
+ }
133
+ export interface AiApiKeyCreatePayload {
134
+ projectExid: string;
135
+ provider: string;
136
+ name?: string;
137
+ purpose?: string;
138
+ apiKey?: string;
139
+ enabled?: boolean;
140
+ }
141
+ export interface AiApiKeyUpdatePayload {
142
+ name?: string;
143
+ enabled?: boolean;
144
+ apiKey?: string;
145
+ }
146
+ export type AiApiKeyQueryParams = {
147
+ projectExid?: string;
148
+ provider?: string;
149
+ purpose?: string;
150
+ enabled?: boolean;
151
+ };
152
+ export interface AiApiKeyCreateResponse {
153
+ created: boolean;
154
+ data: AiApiKey;
155
+ message: string;
156
+ }
157
+ export interface AiApiKeyUpdateResponse {
158
+ updated: boolean;
159
+ id: number | string;
160
+ message: string;
161
+ }
162
+ export interface AiApiKeyDeleteResponse {
163
+ deleted: boolean;
164
+ count: number;
165
+ message: string;
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
+ }