@evercam/api 1.0.0-964e29308 → 1.0.0-97bd6ccd7

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 (64) hide show
  1. package/README.md +1 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +197 -15
  3. package/dist/api/api/adminApi.d.ts +20 -15
  4. package/dist/api/api/aiApi.d.ts +125 -4
  5. package/dist/api/api/authzApi.d.ts +5 -3
  6. package/dist/api/api/evercamApi.d.ts +32 -12
  7. package/dist/api/api/evercamLabsApi.d.ts +5 -5
  8. package/dist/api/api/ingestApi.d.ts +21 -7
  9. package/dist/api/types/360.d.ts +167 -83
  10. package/dist/api/types/aiConfigs.d.ts +244 -0
  11. package/dist/api/types/analytics.d.ts +36 -23
  12. package/dist/api/types/anpr.d.ts +31 -2
  13. package/dist/api/types/auditLogs.d.ts +18 -0
  14. package/dist/api/types/authz.d.ts +71 -0
  15. package/dist/api/types/automation.d.ts +23 -4
  16. package/dist/api/types/axios.d.ts +9 -9
  17. package/dist/api/types/bim.d.ts +28 -5
  18. package/dist/api/types/camera.d.ts +13 -32
  19. package/dist/api/types/comments.d.ts +10 -7
  20. package/dist/api/types/connector.d.ts +2 -0
  21. package/dist/api/types/copilot.d.ts +0 -3
  22. package/dist/api/types/detections.d.ts +3 -10
  23. package/dist/api/types/drone.d.ts +94 -6
  24. package/dist/api/types/errors.d.ts +13 -1
  25. package/dist/api/types/gateReport.d.ts +7 -22
  26. package/dist/api/types/gateReportManagement.d.ts +170 -0
  27. package/dist/api/types/hammertech.d.ts +98 -0
  28. package/dist/api/types/index.d.ts +8 -1
  29. package/dist/api/types/ingest.d.ts +98 -3
  30. package/dist/api/types/kit.d.ts +41 -51
  31. package/dist/api/types/map.d.ts +12 -0
  32. package/dist/api/types/media.d.ts +8 -2
  33. package/dist/api/types/notification.d.ts +41 -2
  34. package/dist/api/types/observationEvents.d.ts +135 -0
  35. package/dist/api/types/observations.d.ts +84 -0
  36. package/dist/api/types/planner.d.ts +56 -10
  37. package/dist/api/types/posthog.d.ts +20 -0
  38. package/dist/api/types/project.d.ts +11 -2
  39. package/dist/api/types/recording.d.ts +8 -13
  40. package/dist/api/types/ring.d.ts +16 -16
  41. package/dist/api/types/roi.d.ts +3 -11
  42. package/dist/api/types/routeParams.d.ts +1 -0
  43. package/dist/api/types/shared.d.ts +18 -18
  44. package/dist/api/types/shares.d.ts +0 -13
  45. package/dist/api/types/siteAnalytics.d.ts +3 -5
  46. package/dist/api/types/siteAnalyticsManagement.d.ts +117 -0
  47. package/dist/api/types/siteView.d.ts +73 -0
  48. package/dist/api/types/snapshots.d.ts +13 -0
  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 +4 -8
  52. package/dist/api/types/user.d.ts +1 -4
  53. package/dist/api/utils.d.ts +0 -1
  54. package/dist/index.js +1832 -682
  55. package/dist/index.js.map +1 -1
  56. package/dist/index.umd.cjs +1 -1
  57. package/dist/index.umd.cjs.map +1 -1
  58. package/dist/shared/types/components.d.ts +111 -38
  59. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  60. package/dist/shared/types/imagePlayer.d.ts +8 -1
  61. package/dist/shared/types/index.d.ts +2 -0
  62. package/dist/shared/types/observations.d.ts +25 -0
  63. package/package.json +4 -2
  64. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -1,4 +1,4 @@
1
- import { CompareLogoPosition, DateType } from "@evercam/api/types";
1
+ import { CompareLogoPosition, DateType, PaginationParams } from "@evercam/api/types";
2
2
  export declare enum BimModelType {
3
3
  Architectural = "Architectural",
4
4
  Structural = "Structural",
@@ -101,7 +101,7 @@ export type BIMLayerPostPayload = {
101
101
  layerType: BIMLayerTypes;
102
102
  startAt: DateType;
103
103
  shapes: string;
104
- zIndex: number;
104
+ zIndex?: number;
105
105
  };
106
106
  export type BIMLayer = {
107
107
  id: number;
@@ -137,9 +137,7 @@ export type ProcessPendingImagesBimParams = {
137
137
  apiId: string;
138
138
  apiKey: string;
139
139
  };
140
- export type BimUploadsQueryParams = {
141
- page: number;
142
- limit: number;
140
+ export type BimUploadsQueryParams = PaginationParams & {
143
141
  projectId: string;
144
142
  id: string;
145
143
  uploadedBy: string;
@@ -151,3 +149,28 @@ export type BimUploadPayload = {
151
149
  fileExtension: string;
152
150
  }[];
153
151
  };
152
+ export declare enum ForgeBimUploadMethod {
153
+ FileUpload = "file_upload",
154
+ AutodeskAcc = "autodesk_acc"
155
+ }
156
+ export declare enum ForgeBimFileRejectionReason {
157
+ InvalidType = "invalid_type",
158
+ ExceedsSizeLimit = "exceeds_size_limit"
159
+ }
160
+ export declare enum ForgeBimUploadStage {
161
+ TusUpload = "tus_upload",
162
+ IngestUpload = "ingest_upload"
163
+ }
164
+ export declare enum ForgeBimDialogTrigger {
165
+ UpdateModel = "update_model",
166
+ AddModel = "add_model",
167
+ InitialSetup = "initial_setup"
168
+ }
169
+ export type BimUpdatedWebhookPayload = {
170
+ eventName: "bim.updated";
171
+ projectId: string;
172
+ data: {
173
+ updatedAt: string;
174
+ bimIdentifier: string;
175
+ };
176
+ };
@@ -1,12 +1,8 @@
1
- import { AuditLogActionType, DateType, EntityByExid, KitAlarm, NvrDeviceType, PaginationParams, PowerSchedule, PowerType, ProjectExid, ProjectFeatureFlag, Schedule, ScheduleLowercase } from "@evercam/api/types";
1
+ import { AuditLogActionType, DateType, EntityByExid, KitAlarm, NvrDeviceType, PaginationParams, PowerSchedule, PowerType, ProjectExid, ProjectFeatureFlag, Schedule, ScheduleLowercase, TimestampPositionCoordinates } from "@evercam/api/types";
2
2
  import { DateRangeFilter } from "@evercam/api/types/time";
3
+ import { GeoPoint, TuplePoint2D } from "@evercam/api/types/shared";
3
4
  export type CameraExid = string;
4
5
  export type CamerasByExid = EntityByExid<Camera>;
5
- export type Cartesian3 = {
6
- x: number;
7
- y: number;
8
- z: number;
9
- };
10
6
  export type Camera = {
11
7
  cameraPowerSchedule?: Schedule;
12
8
  camPassword?: string;
@@ -46,10 +42,7 @@ export type Camera = {
46
42
  isPublic: boolean;
47
43
  lastOnlineAt: string;
48
44
  lastPolledAt: string;
49
- location: {
50
- lat: number;
51
- lng: number;
52
- };
45
+ location: GeoPoint;
53
46
  modelId: string;
54
47
  modelName: string;
55
48
  name: string;
@@ -87,6 +80,8 @@ export type Camera = {
87
80
  vendorName: string;
88
81
  isAccessRestricted?: boolean;
89
82
  kitAlarms?: KitAlarm[];
83
+ timestampPosition?: TimestampPositionCoordinates;
84
+ position?: number | null;
90
85
  };
91
86
  export type AdminCamera = {
92
87
  id: number;
@@ -112,10 +107,7 @@ export type AdminCamera = {
112
107
  isPublic: boolean;
113
108
  sharedWithConstruction?: boolean;
114
109
  timezone: string | null;
115
- location?: {
116
- lat: number;
117
- lng: number;
118
- } | null;
110
+ location?: GeoPoint | null;
119
111
  fovAngle?: number | null;
120
112
  fovRadius?: number | null;
121
113
  heading?: number | null;
@@ -167,10 +159,7 @@ export type AdminCamera = {
167
159
  };
168
160
  export type CameraMapMarker = {
169
161
  isOnline: boolean;
170
- location: {
171
- lat: number;
172
- lng: number;
173
- };
162
+ location: GeoPoint;
174
163
  needFov: boolean;
175
164
  rotation: number;
176
165
  fovAngle: number;
@@ -209,17 +198,15 @@ export declare enum CameraFeatureFlag {
209
198
  Segmentation = "segmentation",
210
199
  SegmentationAutoLabelling = "segmentation_auto_labelling",
211
200
  PpeMonitoring = "ppe_monitoring",
201
+ PpeOwlv2 = "ppe_owlv2",
202
+ PpeGemini = "ppe_gemini",
203
+ PpeYolo = "ppe_yolo",
204
+ PpeV2 = "ppe_v2",
212
205
  NoLiveView = "no_live_view",
206
+ NoRecordings = "no_recordings",
213
207
  Ring = "ring",
214
208
  CloudOnly = "cloud_only"
215
209
  }
216
- export type CameraLogsRequestPayload = {
217
- limit: number;
218
- page: number;
219
- types: string;
220
- from: string;
221
- to: string;
222
- };
223
210
  export type CameraUpdateRequestPayload = {
224
211
  status?: string;
225
212
  timezone?: string;
@@ -320,12 +307,6 @@ export declare enum CameraModel {
320
307
  Other = "other",
321
308
  Ring = "ring"
322
309
  }
323
- export type DroneCameraTransform = {
324
- position: Cartesian3;
325
- direction: Cartesian3;
326
- up: Cartesian3;
327
- right: Cartesian3;
328
- };
329
310
  export type Footage = {
330
311
  cameraExid: string;
331
312
  cameraName: string;
@@ -366,7 +347,7 @@ export type CameraCreateRequestPayload = {
366
347
  isPowerScheduleActive?: boolean;
367
348
  ptz?: boolean;
368
349
  name: string;
369
- coordinates?: [number, number];
350
+ coordinates?: TuplePoint2D;
370
351
  recordingFromNvr?: boolean;
371
352
  CameraConfig: {
372
353
  model: CameraModel;
@@ -1,8 +1,9 @@
1
- import { CameraExid, DateType, ProjectExid, PaginationParams } from "@evercam/api/types";
1
+ import { CameraExid, DateType, ProjectExid, PaginationParams, TuplePoint3D, TuplePoint2D } from "@evercam/api/types";
2
2
  export declare enum CommentsScope {
3
3
  Recordings = "recordings",
4
4
  ThreeSixty = "360",
5
- Drone = "drone"
5
+ Drone = "drone",
6
+ Timeline = "timeline"
6
7
  }
7
8
  export declare enum CommentsLabel {
8
9
  Info = "Info",
@@ -11,6 +12,7 @@ export declare enum CommentsLabel {
11
12
  }
12
13
  export type CommentsRequestPayload = {
13
14
  scope: CommentsScope;
15
+ cameraExid?: CameraExid;
14
16
  };
15
17
  export type CommentsListRequestPayload = PaginationParams & {
16
18
  projectExid?: ProjectExid;
@@ -34,8 +36,8 @@ export type Comment = {
34
36
  createdAt?: string;
35
37
  creatorEmail?: string;
36
38
  creatorName?: string;
37
- position2d?: [number, number];
38
- position3d?: [number, number, number];
39
+ position2d?: TuplePoint2D;
40
+ position3d?: TuplePoint3D;
39
41
  context?: Record<string, unknown>;
40
42
  canDelete?: boolean;
41
43
  archivedAt?: string;
@@ -46,10 +48,11 @@ export type CommentCreationRequestPayload = {
46
48
  toDate?: DateType;
47
49
  timestamp?: DateType;
48
50
  scope?: CommentsScope;
49
- projectExid: ProjectExid;
51
+ projectExid?: ProjectExid;
50
52
  cameraExid?: CameraExid;
51
53
  content: string;
52
- position2d?: number[];
53
- position3d?: number[];
54
+ label?: CommentsLabel;
55
+ position2d?: TuplePoint2D;
56
+ position3d?: [number, number, number];
54
57
  context?: Record<string, unknown>;
55
58
  };
@@ -10,6 +10,8 @@ export declare enum Connector {
10
10
  AutodeskViewer = "autodesk_viewer",
11
11
  VoyageControl = "voyage_control",
12
12
  Ring = "ring",
13
+ Email = "email",
14
+ Hammertech = "hammertech",
13
15
  XWeather = "xweather"
14
16
  }
15
17
  export declare enum ProcoreType {
@@ -45,9 +45,6 @@ export type CopilotMissingField<T = unknown> = {
45
45
  error?: T;
46
46
  };
47
47
  export type CopilotMissingFields = Record<number, CopilotMissingField[]>;
48
- export type UserConversations = CopilotConversation & {
49
- Message: CopilotMessage[];
50
- };
51
48
  export declare enum CopilotSocketEvent {
52
49
  ConversationStart = "conversation:start",
53
50
  ConversationCreated = "conversation:created",
@@ -13,15 +13,6 @@ export type SegmentsFilters = BaseDetectionsFilters & {
13
13
  cameraExid: CameraExid;
14
14
  };
15
15
  export type BBox = number[];
16
- export type SelectedObjectPath = {
17
- label: string;
18
- trackId: string;
19
- paths: Array<{
20
- timestamp: number;
21
- center: [number, number];
22
- bbox: BBox;
23
- }>;
24
- };
25
16
  export type Label = DetectionLabel | PpeLabel;
26
17
  export type Detection = {
27
18
  bbox: BBox;
@@ -111,6 +102,7 @@ export declare enum PpeLabel {
111
102
  Helmet = "helmet",
112
103
  HighVisibilityVest = "high-visibility-vest",
113
104
  SafetyGlasses = "safety-glasses",
105
+ Gloves = "gloves",
114
106
  Person = "person",
115
107
  Man = "man",
116
108
  Woman = "woman"
@@ -120,5 +112,6 @@ export declare enum DetectionModel {
120
112
  Yolov11 = 2,
121
113
  Yolov112 = 3,
122
114
  GroundingDino = 4,
123
- Owlv2 = 5
115
+ Owlv2 = 5,
116
+ PpeV2 = 6
124
117
  }
@@ -1,18 +1,106 @@
1
+ import { Point3D } from "@evercam/api/types/shared";
2
+ export type DroneCameraTransform = {
3
+ position: Point3D;
4
+ direction: Point3D;
5
+ up: Point3D;
6
+ right: Point3D;
7
+ };
1
8
  export type DroneModel = {
2
- cesiumId: string;
3
- cesiumId2D: string;
9
+ cesiumId: number;
10
+ cesiumId2D: number;
4
11
  date: string;
5
12
  cesiumPointCloudId: string;
6
13
  cesiumGausianSplatId: string;
7
14
  pointSize: string;
8
- maximumScreenSpaceError: string;
15
+ maximumScreenSpaceError: number;
9
16
  link: string;
10
17
  trueIndex: number;
11
18
  };
12
- export type DroneProjectJsonResponse = {
13
- models: DroneModel[];
14
- [key: string]: any;
19
+ export type DroneProjectTransform = {
20
+ initialCameraTransform?: DroneCameraTransform;
21
+ initial2DCameraTransform?: DroneCameraTransform;
22
+ markers?: Record<string, DroneMarker>;
23
+ imageryPlans?: Record<string, DroneImageryPlan>;
24
+ bimData?: DroneBimData;
25
+ terrainPoints?: Record<string, Point3D[]>;
26
+ projectWGS84Coordinates?: DroneProjectCoordinates | null;
27
+ tags?: Record<string, DroneTag>;
28
+ };
29
+ export type DroneProjectData = {
30
+ models?: DroneModel[];
31
+ transform?: DroneProjectTransform;
32
+ integrationType?: DroneProvider;
33
+ origin?: string;
34
+ params?: string;
35
+ pointSize?: number;
36
+ };
37
+ export type DroneProjectDataPatch = {
38
+ models?: Record<number, Partial<DroneModel>>;
39
+ integrationType?: DroneProvider;
40
+ origin?: string;
41
+ params?: string;
42
+ };
43
+ export type DroneProjectCoordinates = {
44
+ lat: number | null;
45
+ lon: number | null;
46
+ alt: number | null;
47
+ };
48
+ export type DroneTransformPatch = {
49
+ projectWGS84Coordinates?: DroneProjectCoordinates | null;
50
+ };
51
+ export declare enum DroneTagType {
52
+ AerialShot = "AerialShot"
53
+ }
54
+ export type DroneTag<T extends DroneTagType = DroneTagType> = {
55
+ id?: number;
56
+ type: T;
57
+ comment: string;
58
+ position?: Point3D;
59
+ cameraTransform?: string;
60
+ creationDate: string;
61
+ hyperlink?: string;
62
+ height?: number;
63
+ };
64
+ export type AerialShotPoint = DroneTag<DroneTagType.AerialShot>;
65
+ export type DroneMarkerTransform = {
66
+ fovAngle: number;
67
+ fovRadius: number;
68
+ heading: number;
69
+ height: number;
70
+ latitude: string;
71
+ longitude: string;
72
+ pitch: number;
73
+ roll: number;
74
+ scale: number;
75
+ };
76
+ export declare enum DroneMarkerType {
77
+ Default = "Default",
78
+ Gate = "Gate",
79
+ Indoor = "Indoor"
80
+ }
81
+ export type DroneMarker = {
82
+ type: DroneMarkerType;
83
+ name: string;
84
+ cameraExid: string;
85
+ transform: DroneMarkerTransform;
86
+ };
87
+ export type DroneImageryPlan = {
88
+ cesiumId: number;
89
+ uuid: string;
90
+ name: string;
91
+ alpha: number;
92
+ order: number;
93
+ };
94
+ export type DroneBimData = {
95
+ cesiumId: string | null;
96
+ iModelId: string | null;
97
+ changeSetId: string | null;
98
+ isItwin: boolean;
15
99
  };
16
100
  export declare enum DroneUrlParams {
17
101
  Date = "date"
18
102
  }
103
+ export declare enum DroneProvider {
104
+ Evercam = "Evercam",
105
+ DroneDeploy = "DroneDeploy"
106
+ }
@@ -23,7 +23,8 @@ export declare enum ErrorCode {
23
23
  UnauthorizedError = 401,
24
24
  ForbiddenError = 403,
25
25
  NotFoundError = 404,
26
- ConflictError = 409
26
+ ConflictError = 409,
27
+ GoneError = 410
27
28
  }
28
29
  export declare enum EvercamApiErrorCode {
29
30
  IntegrationError = "INTEGRATION_ERROR",
@@ -46,4 +47,15 @@ type _EvercamApiError = {
46
47
  innerError?: _EvercamApiError;
47
48
  };
48
49
  export type EvercamApiError = AxiosError<_EvercamApiError>;
50
+ export type AppError = {
51
+ statusCode?: number;
52
+ message?: string;
53
+ redirect?: {
54
+ url?: string;
55
+ label?: string;
56
+ delay?: number;
57
+ };
58
+ withSupportMessage?: boolean;
59
+ isWidget?: boolean;
60
+ };
49
61
  export {};
@@ -1,4 +1,4 @@
1
- import { AnprDirection, AnprEvent, CameraExid, DateType, PaginatedItems, PaginationParams, ProjectExid, RoiShapeType, Timestamp } from "@evercam/api/types";
1
+ import { AnprDirection, AnprEvent, CameraExid, DateType, PaginatedItems, PaginationParams, ProjectExid, RoiDirection, RoiShapeType, RoiType, Timestamp, TuplePoint2D } from "@evercam/api/types";
2
2
  export declare enum GateReportDetectionType {
3
3
  Auto = "auto",
4
4
  Manual = "manual",
@@ -166,12 +166,6 @@ export type GateReportEvent = {
166
166
  truckType: GateReportVehicleType;
167
167
  thumbnailUrl?: string;
168
168
  };
169
- export type GateReportArrivedEvent = GateReportEvent & {
170
- eventType: GateReportEventType.Arrived;
171
- };
172
- export type GateReportLeftEvent = GateReportEvent & {
173
- eventType: GateReportEventType.Left;
174
- };
175
169
  export type GateReportVerifiedDay = {
176
170
  id: number;
177
171
  day: string;
@@ -188,7 +182,6 @@ export type BoundingBox = {
188
182
  ymax: number;
189
183
  ymin: number;
190
184
  };
191
- export type EventsCountsByVehicleType = Record<GateReportVehicleType, number>;
192
185
  export type EventsCount = {
193
186
  in: number;
194
187
  out: number;
@@ -203,10 +196,6 @@ export type MonthlyEventCount = EventsCount & {
203
196
  export type DailyEventCount = EventsCount & {
204
197
  day: string;
205
198
  };
206
- export type HourlyEventCount = {
207
- hour: string;
208
- count: number;
209
- };
210
199
  export type EventCountRequestPayload = {
211
200
  vehicleTypes?: GateReportVehicleType[];
212
201
  isPublic?: boolean;
@@ -249,6 +238,7 @@ export type AnprExportBaseParams = {
249
238
  toDate?: string;
250
239
  camerasExid?: CameraExid[];
251
240
  isPublic?: boolean;
241
+ columns?: string[];
252
242
  };
253
243
  export type EventsExportRequestParameters = AnprExportBaseParams & {
254
244
  eventType: GateReportEventType;
@@ -259,23 +249,19 @@ export type AnprBasedGateReportExportRequestParams = AnprExportBaseParams & {
259
249
  export type LegacyAnprExportParams = AnprExportBaseParams & {
260
250
  direction?: AnprDirection;
261
251
  };
262
- type X1 = number;
263
- type Y1 = number;
264
- type X2 = number;
265
- type Y2 = number;
266
252
  export type GateReportROIShape = {
267
- coordinates: [[X1, Y1], [X2, Y2]];
253
+ coordinates: TuplePoint2D[];
268
254
  type: RoiShapeType;
269
255
  };
270
256
  export type GateReportROI = {
271
257
  cameraex?: string;
272
258
  fromDate?: string;
273
- directionFilter?: string;
259
+ directionFilter?: RoiDirection;
274
260
  id?: number;
275
261
  insertedAt?: Timestamp;
276
262
  isActive?: boolean;
277
263
  name?: string;
278
- roiType?: string;
264
+ roiType?: RoiType;
279
265
  updatedAt?: Timestamp;
280
266
  shapes?: GateReportROIShape[];
281
267
  };
@@ -318,7 +304,7 @@ export type RoisQueryParams = {
318
304
  id: number;
319
305
  name: string;
320
306
  fromDate: string;
321
- roiType: RoiShapeType;
307
+ roiType: RoiType;
322
308
  isActive: boolean;
323
309
  directionFilter: string;
324
310
  sort: string;
@@ -327,11 +313,10 @@ export type GateReportRoiRequestPayload = {
327
313
  id: number;
328
314
  cameraExid: string;
329
315
  name: string;
330
- roiType: string;
316
+ roiType: RoiType;
331
317
  isActive: true;
332
318
  fromDate: string;
333
319
  shapes: GateReportROIShape[];
334
320
  directionFilter: string;
335
321
  note: string;
336
322
  };
337
- export {};
@@ -0,0 +1,170 @@
1
+ import { CameraExid, DateType, PaginationParams, ProjectExid } from "@evercam/api/types";
2
+ export declare enum VehicleClassifierSource {
3
+ Local = "local",
4
+ Api = "api"
5
+ }
6
+ export type GateReportCoolifyStatus = {
7
+ appUuid: string | null;
8
+ name: string | null;
9
+ serverUuid: string | null;
10
+ serverName: string | null;
11
+ appUrl: string | null;
12
+ status: string | null;
13
+ isRunning: boolean;
14
+ imageTag?: string | null;
15
+ fqdn: string | null;
16
+ updatedAt: string | null;
17
+ };
18
+ export type GateReportProjectMeta = {
19
+ exid: ProjectExid;
20
+ name: string | null;
21
+ timezone: string | null;
22
+ featureFlags: string[] | null;
23
+ };
24
+ export type GateReportCameraMeta = {
25
+ exid: CameraExid;
26
+ name: string | null;
27
+ status: string | null;
28
+ kitSerial: string | null;
29
+ kitAlarms: string[] | Record<string, unknown> | null;
30
+ };
31
+ export type GateReportManagedApp = {
32
+ id: number;
33
+ projectExid: ProjectExid;
34
+ anprCameraExid: CameraExid;
35
+ contextCameraExid: CameraExid | null;
36
+ coolifyAppId: string | null;
37
+ startDate: DateType | null;
38
+ endDate: DateType | null;
39
+ startHour: number;
40
+ endHour: number;
41
+ enabled: boolean;
42
+ enableEnrichments: boolean;
43
+ enableGemini: boolean;
44
+ geminiStartHour: number;
45
+ geminiEndHour: number;
46
+ reviewModel: string;
47
+ enrichmentModel: string;
48
+ reviewerPromptSlug: string | null;
49
+ geminiTimeoutSeconds: number;
50
+ geminiMaxAttempts: number;
51
+ vehicleClassifierSource: VehicleClassifierSource;
52
+ snapshotDelaySeconds: number;
53
+ snapshotRequestTimeout: number;
54
+ plateClassifierThreshold: number;
55
+ plateClassifierHighConfidence: number;
56
+ maxPriorEvents: number;
57
+ recordsFetchInterval: number;
58
+ priorRecentLimit: number;
59
+ priorSimilarLimit: number;
60
+ insertedAt: DateType;
61
+ updatedAt: DateType;
62
+ coolify: GateReportCoolifyStatus | null;
63
+ project: GateReportProjectMeta | null;
64
+ anprCamera: GateReportCameraMeta | null;
65
+ contextCamera: GateReportCameraMeta | null;
66
+ anprHasRoi: boolean;
67
+ contextHasRoi: boolean;
68
+ lastProcessedEventAt: DateType | null;
69
+ lastUnprocessedEventAt: DateType | null;
70
+ };
71
+ export type GateReportAppEvents = {
72
+ anprCameraExid: CameraExid;
73
+ lastProcessedEventAt: DateType | null;
74
+ lastUnprocessedEventAt: DateType | null;
75
+ };
76
+ export type AppConfigFormValue = {
77
+ contextCameraExid: string | null;
78
+ startDate: DateType | null;
79
+ endDate: DateType | null;
80
+ startHour: number;
81
+ endHour: number;
82
+ enabled: boolean;
83
+ enableEnrichments: boolean;
84
+ enableGemini: boolean;
85
+ geminiStartHour: number;
86
+ geminiEndHour: number;
87
+ reviewModel: string;
88
+ enrichmentModel: string;
89
+ reviewerPromptSlug: string | null;
90
+ geminiTimeoutSeconds: number;
91
+ geminiMaxAttempts: number;
92
+ vehicleClassifierSource: VehicleClassifierSource;
93
+ snapshotDelaySeconds: number;
94
+ snapshotRequestTimeout: number;
95
+ plateClassifierThreshold: number;
96
+ plateClassifierHighConfidence: number;
97
+ recordsFetchInterval: number;
98
+ priorRecentLimit: number;
99
+ priorSimilarLimit: number;
100
+ };
101
+ export type CreateGateReportAppPayload = {
102
+ projectExid: ProjectExid;
103
+ anprCameraExid: CameraExid;
104
+ contextCameraExid?: CameraExid | null;
105
+ coolifyServerUuid: string;
106
+ imageTag?: string;
107
+ geminiApiKey?: string | null;
108
+ startDate?: DateType | null;
109
+ endDate?: DateType | null;
110
+ startHour?: number;
111
+ endHour?: number;
112
+ enabled?: boolean;
113
+ enableEnrichments?: boolean;
114
+ enableGemini?: boolean;
115
+ geminiStartHour?: number;
116
+ geminiEndHour?: number;
117
+ reviewModel?: string;
118
+ enrichmentModel?: string;
119
+ reviewerPromptSlug?: string | null;
120
+ geminiTimeoutSeconds?: number;
121
+ geminiMaxAttempts?: number;
122
+ vehicleClassifierSource?: VehicleClassifierSource;
123
+ snapshotDelaySeconds?: number;
124
+ snapshotRequestTimeout?: number;
125
+ plateClassifierThreshold?: number;
126
+ plateClassifierHighConfidence?: number;
127
+ maxPriorEvents?: number;
128
+ recordsFetchInterval?: number;
129
+ priorRecentLimit?: number;
130
+ priorSimilarLimit?: number;
131
+ };
132
+ export type UpdateGateReportAppPayload = Partial<Omit<CreateGateReportAppPayload, "projectExid" | "anprCameraExid" | "coolifyServerUuid" | "geminiApiKey">>;
133
+ export type GateReportAppsQueryParams = PaginationParams & {
134
+ projectExid?: ProjectExid;
135
+ includeStatus?: boolean;
136
+ };
137
+ export type CoolifyProjectOption = {
138
+ uuid: string;
139
+ name: string;
140
+ description: string | null;
141
+ };
142
+ export type CoolifyServerOption = {
143
+ uuid: string;
144
+ name: string;
145
+ isReachable: boolean;
146
+ isUsable: boolean;
147
+ };
148
+ export declare enum AppRuntimeState {
149
+ Running = "running",
150
+ Stopped = "stopped",
151
+ Restarting = "restarting"
152
+ }
153
+ export type AppActionResponse = {
154
+ success: boolean;
155
+ message: string | null;
156
+ appUuid: string | null;
157
+ state: AppRuntimeState | null;
158
+ };
159
+ export type APIEnvelope<T> = {
160
+ success: boolean;
161
+ data: T | null;
162
+ message: string;
163
+ };
164
+ export type CreateGateReportAppResponse = {
165
+ created: boolean;
166
+ id: number | null;
167
+ data: GateReportManagedApp | null;
168
+ count: number | null;
169
+ message: string;
170
+ };