@evercam/api 1.0.0-d7a4e6c9d → 1.0.0-d7c973f82

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 (95) hide show
  1. package/README.md +1 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +208 -13
  3. package/dist/api/api/adminApi.d.ts +104 -96
  4. package/dist/api/api/aiApi.d.ts +117 -86
  5. package/dist/api/api/authzApi.d.ts +34 -15
  6. package/dist/api/api/client/axios.d.ts +2 -1
  7. package/dist/api/api/client/swr/Swr.d.ts +1 -1
  8. package/dist/api/api/evercamApi.d.ts +144 -101
  9. package/dist/api/api/evercamLabsApi.d.ts +7 -6
  10. package/dist/api/api/exNvrApi.d.ts +1 -1
  11. package/dist/api/api/ingestApi.d.ts +109 -46
  12. package/dist/api/api/ptzApi.d.ts +12 -3
  13. package/dist/api/api/videoWallApi.d.ts +2 -2
  14. package/dist/api/api/weatherApi.d.ts +2 -2
  15. package/dist/api/types/360.d.ts +289 -38
  16. package/dist/api/types/aconex.d.ts +9 -9
  17. package/dist/api/types/admin.d.ts +51 -0
  18. package/dist/api/types/aiConfigs.d.ts +146 -0
  19. package/dist/api/types/analytics.d.ts +145 -60
  20. package/dist/api/types/anpr.d.ts +48 -2
  21. package/dist/api/types/auditLogs.d.ts +19 -1
  22. package/dist/api/types/authz.d.ts +107 -0
  23. package/dist/api/types/autodesk.d.ts +7 -7
  24. package/dist/api/types/automation.d.ts +56 -3
  25. package/dist/api/types/axios.d.ts +19 -14
  26. package/dist/api/types/bim.d.ts +38 -9
  27. package/dist/api/types/camera.d.ts +102 -106
  28. package/dist/api/types/comments.d.ts +10 -11
  29. package/dist/api/types/company.d.ts +42 -1
  30. package/dist/api/types/compare.d.ts +20 -5
  31. package/dist/api/types/connector.d.ts +5 -5
  32. package/dist/api/types/coolify.d.ts +18 -2
  33. package/dist/api/types/copilot.d.ts +11 -9
  34. package/dist/api/types/credentials.d.ts +1 -0
  35. package/dist/api/types/detections.d.ts +23 -18
  36. package/dist/api/types/drone.d.ts +96 -6
  37. package/dist/api/types/errors.d.ts +13 -1
  38. package/dist/api/types/gateReport.d.ts +49 -168
  39. package/dist/api/types/gateReportManagement.d.ts +170 -0
  40. package/dist/api/types/hammertech.d.ts +98 -0
  41. package/dist/api/types/hdd.d.ts +26 -1
  42. package/dist/api/types/index.d.ts +14 -2
  43. package/dist/api/types/ingest.d.ts +112 -4
  44. package/dist/api/types/kit.d.ts +72 -56
  45. package/dist/api/types/map.d.ts +12 -0
  46. package/dist/api/types/media.d.ts +10 -3
  47. package/dist/api/types/notification.d.ts +43 -3
  48. package/dist/api/types/oauth.d.ts +62 -0
  49. package/dist/api/types/observations.d.ts +85 -0
  50. package/dist/api/types/planner.d.ts +101 -9
  51. package/dist/api/types/posthog.d.ts +35 -0
  52. package/dist/api/types/procore.d.ts +13 -6
  53. package/dist/api/types/progressPhoto.d.ts +6 -2
  54. package/dist/api/types/project.d.ts +143 -21
  55. package/dist/api/types/recording.d.ts +10 -15
  56. package/dist/api/types/recycleBin.d.ts +1 -1
  57. package/dist/api/types/ring.d.ts +53 -0
  58. package/dist/api/types/roi.d.ts +3 -11
  59. package/dist/api/types/routeParams.d.ts +1 -0
  60. package/dist/api/types/router.d.ts +20 -1
  61. package/dist/api/types/shared.d.ts +29 -22
  62. package/dist/api/types/shares.d.ts +6 -157
  63. package/dist/api/types/sim.d.ts +6 -6
  64. package/dist/api/types/siteAnalytics.d.ts +169 -47
  65. package/dist/api/types/siteAnalyticsManagement.d.ts +90 -0
  66. package/dist/api/types/siteView.d.ts +73 -0
  67. package/dist/api/types/smartSeach.d.ts +5 -0
  68. package/dist/api/types/snapshots.d.ts +49 -4
  69. package/dist/api/types/socket.d.ts +4 -0
  70. package/dist/api/types/storageProvider.d.ts +19 -0
  71. package/dist/api/types/storyblok.d.ts +27 -0
  72. package/dist/api/types/streaming.d.ts +3 -3
  73. package/dist/api/types/tag.d.ts +1 -1
  74. package/dist/api/types/time.d.ts +0 -18
  75. package/dist/api/types/timelapse.d.ts +7 -11
  76. package/dist/api/types/user.d.ts +106 -35
  77. package/dist/api/types/videoWall.d.ts +21 -21
  78. package/dist/api/types/weather.d.ts +75 -11
  79. package/dist/api/types/widget.d.ts +71 -12
  80. package/dist/api/types/xweather.d.ts +4 -4
  81. package/dist/api/utils.d.ts +0 -1
  82. package/dist/index.js +2150 -1040
  83. package/dist/index.js.map +1 -1
  84. package/dist/index.umd.cjs +1 -1
  85. package/dist/index.umd.cjs.map +1 -1
  86. package/dist/shared/types/components.d.ts +205 -34
  87. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  88. package/dist/shared/types/imagePlayer.d.ts +10 -3
  89. package/dist/shared/types/index.d.ts +3 -0
  90. package/dist/shared/types/observations.d.ts +21 -0
  91. package/dist/shared/types/rbac.d.ts +67 -0
  92. package/dist/shared/types/timeline.d.ts +2 -1
  93. package/package.json +4 -2
  94. package/dist/api/types/storageServers.d.ts +0 -4
  95. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -0,0 +1,85 @@
1
+ import { type ProjectExid, type CameraExid, type DateType, type BBox, PpeLabel, DownloadFileType } from "@evercam/api/types";
2
+ export declare enum ObservationItemState {
3
+ Absent = 0,
4
+ Present = 1,
5
+ NotVisible = 2
6
+ }
7
+ export type ObservationEventEquipment = {
8
+ score: number;
9
+ bbox: BBox;
10
+ };
11
+ export type ObservationEvent = {
12
+ id: number;
13
+ cameraExid: CameraExid;
14
+ projectExid: ProjectExid;
15
+ capturedAt: DateType;
16
+ personIndex: number;
17
+ personBbox: BBox;
18
+ personScore: number;
19
+ ppe: Partial<Record<PpeLabel, ObservationEventEquipment>>;
20
+ hasHelmet: ObservationItemState | null;
21
+ hasHighVisVest: ObservationItemState | null;
22
+ hasGloves: ObservationItemState | null;
23
+ hasGlasses: ObservationItemState | null;
24
+ modelVersion: string;
25
+ createdAt: DateType;
26
+ compliant: boolean;
27
+ reason: string | null;
28
+ isApproved: boolean | null;
29
+ };
30
+ export type ObservationEventsQueryParams = {
31
+ cameraExid?: CameraExid;
32
+ fromDate?: string;
33
+ toDate?: string;
34
+ required?: string;
35
+ compliant?: boolean;
36
+ hasHelmet?: boolean;
37
+ hasHighVisVest?: boolean;
38
+ hasGloves?: boolean;
39
+ hasGlasses?: boolean;
40
+ sort?: string;
41
+ page?: number;
42
+ limit?: number;
43
+ };
44
+ export type ObservationEventsExportQueryParams = {
45
+ cameraExid?: CameraExid;
46
+ fromDate: string;
47
+ toDate: string;
48
+ required?: string;
49
+ compliant?: boolean;
50
+ fileType: DownloadFileType;
51
+ directDownload?: boolean;
52
+ includeInvalid?: boolean;
53
+ };
54
+ export type ObservationApprovalUpdateResponse = {
55
+ updated: boolean;
56
+ id: number | string | null;
57
+ message: string;
58
+ };
59
+ export declare enum ObservationCountsGranularity {
60
+ Day = "day",
61
+ Week = "week",
62
+ Month = "month"
63
+ }
64
+ export type ObservationEventsCountsQueryParams = {
65
+ cameraExid?: CameraExid;
66
+ fromDate?: string;
67
+ toDate?: string;
68
+ required?: string;
69
+ compliant?: boolean;
70
+ hasHelmet?: boolean;
71
+ hasHighVisVest?: boolean;
72
+ hasGloves?: boolean;
73
+ hasGlasses?: boolean;
74
+ granularity?: ObservationCountsGranularity;
75
+ };
76
+ export type ObservationEventCount = {
77
+ bucket: DateType;
78
+ total: number;
79
+ compliant: number;
80
+ nonCompliant: number;
81
+ };
82
+ export declare enum ObservationRequiredItem {
83
+ Helmet = "has_helmet",
84
+ HighVisVest = "has_high_vis_vest"
85
+ }
@@ -1,6 +1,39 @@
1
+ import { GeoPoint, TuplePoint2D } from "./shared";
2
+ import { MapType } from "./map";
3
+ export type PlannerListItem = {
4
+ id: string;
5
+ projectId: string;
6
+ projectName: string;
7
+ projectLocation: string;
8
+ createdDate: string;
9
+ updatedDate: string;
10
+ owner?: string;
11
+ lastUpdatedBy?: string;
12
+ camerasCount?: number;
13
+ hasPlan?: boolean;
14
+ thumbnailUrl?: string;
15
+ projectMapType?: MapType;
16
+ sessionId?: string;
17
+ };
18
+ export type PolygonPath = TuplePoint2D[];
19
+ export type PolygonCoordinates = PolygonPath[];
20
+ export interface GeoJSONPolygon {
21
+ type: "Polygon";
22
+ coordinates: PolygonCoordinates;
23
+ }
24
+ export declare enum PlannerUrlParams {
25
+ SitePlanId = "site_plan_id",
26
+ IsNewSitePlan = "is_new_site_plan",
27
+ IsBoundsMode = "is_bounds_mode",
28
+ ProjectPosition = "project_position",
29
+ DealId = "deal_id"
30
+ }
1
31
  export declare enum EDistortImageModes {
2
32
  FreeRotate = "freeRotate",
3
- Lock = "lock"
33
+ Lock = "lock",
34
+ Rotate = "rotate",
35
+ Scale = "scale",
36
+ Pan = "drag"
4
37
  }
5
38
  export declare enum EMapTypes {
6
39
  Blank = "Blank",
@@ -18,15 +51,74 @@ export declare enum EPageType {
18
51
  List = "list",
19
52
  Item = "item"
20
53
  }
21
- export declare enum EPaths {
22
- Home = "/",
23
- Session = "/session"
24
- }
25
- export declare enum EProjectItems {
26
- Camera = "camera",
27
- Overlay = "overlay"
28
- }
29
54
  export declare enum ERoles {
30
55
  Admin = "admin",
31
56
  User = "user"
32
57
  }
58
+ export type PlannerOverlay = {
59
+ imageUrl?: string;
60
+ corners?: {
61
+ topLeft: GeoPoint;
62
+ topRight: GeoPoint;
63
+ bottomLeft: GeoPoint;
64
+ bottomRight: GeoPoint;
65
+ } | null;
66
+ };
67
+ export type PlannerCameraMarker = {
68
+ name?: string;
69
+ location?: GeoPoint;
70
+ heading?: number;
71
+ fovAngle?: number;
72
+ fovRadius?: number;
73
+ isVisible?: boolean;
74
+ color?: string;
75
+ };
76
+ export type SitePlanBounds = {
77
+ northEast: GeoPoint;
78
+ southWest: GeoPoint;
79
+ };
80
+ export type SitePlan = {
81
+ id?: string;
82
+ projectId?: string;
83
+ owner?: string;
84
+ lastUpdatedBy?: string;
85
+ projectName?: string;
86
+ projectLocation?: string;
87
+ projectMapType?: EMapTypes;
88
+ projectBounds?: SitePlanBounds;
89
+ overlay?: PlannerOverlay;
90
+ markers?: PlannerCameraMarker[];
91
+ thumbnailUrl?: string;
92
+ createdDate?: string;
93
+ updatedDate?: string;
94
+ };
95
+ export interface IDrawControl {
96
+ _toolbars: {
97
+ draw: {
98
+ _activeMode: {
99
+ handler: {
100
+ disable(): void;
101
+ completeShape(): void;
102
+ };
103
+ };
104
+ _modes: {
105
+ polygon: {
106
+ handler: {
107
+ enable(): void;
108
+ };
109
+ };
110
+ };
111
+ };
112
+ edit: {
113
+ _modes: {
114
+ edit: {
115
+ handler: {
116
+ enable(): void;
117
+ disable(): void;
118
+ save(): void;
119
+ };
120
+ };
121
+ };
122
+ };
123
+ };
124
+ }
@@ -16,3 +16,38 @@ export declare enum ActiveUsersMetric {
16
16
  WAU = "wau",
17
17
  MAU = "mau"
18
18
  }
19
+ export type PosthogUser = {
20
+ id: string;
21
+ email: string;
22
+ isWeeklyActiveUser: number;
23
+ isMonthlyActiveUser: number;
24
+ eventsCount: number;
25
+ };
26
+ export type PosthogUsersRequestParams = {
27
+ companyExid?: string;
28
+ projectExid?: string;
29
+ cameraExid?: string;
30
+ productsActivityOnly?: boolean;
31
+ afterId?: string;
32
+ size?: number;
33
+ };
34
+ export type PosthogUsersResponse = {
35
+ data: PosthogUser[];
36
+ hasMore: boolean;
37
+ size: number;
38
+ };
39
+ export type PosthogUserParams = {
40
+ firstname?: string;
41
+ lastname?: string;
42
+ email: string;
43
+ telephone?: string;
44
+ country?: string;
45
+ isAdmin?: boolean;
46
+ persona?: string;
47
+ companyExid: string;
48
+ companyName: string;
49
+ isImpersonationLogin: boolean;
50
+ ImpersonatedUserEmail?: string;
51
+ ImpersonatedUserFirstname?: string;
52
+ impersonatedUserLastname?: string;
53
+ };
@@ -44,7 +44,7 @@ export type ProcoreObservationSpecificationSection = {
44
44
  label: string;
45
45
  currentRevisionId: number;
46
46
  };
47
- export type ProcoreUserProjectsResponsePayload = Array<{
47
+ export type ProcoreUserProject = {
48
48
  accountingProjectNumber?: number;
49
49
  active: boolean;
50
50
  address: string;
@@ -85,7 +85,8 @@ export type ProcoreUserProjectsResponsePayload = Array<{
85
85
  totalValue: string;
86
86
  updatedAt: string;
87
87
  zip: number;
88
- }>;
88
+ };
89
+ export type ProcoreUserProjectsResponsePayload = Array<ProcoreUserProject>;
89
90
  export type ProcoreToolUserAccessLevel = {
90
91
  id: ProcoreToolUserAccessLevelIds;
91
92
  name: string;
@@ -120,7 +121,7 @@ export type ProcoreEditedImageUploadRequestPayload = {
120
121
  snapshot: string;
121
122
  categoryId?: number;
122
123
  };
123
- export type ProcoreProjectsAlbumsPayload = Array<{
124
+ export type ProcoreProjectAlbum = {
124
125
  count: number;
125
126
  coverPhoto: string | null;
126
127
  createdAt: string;
@@ -134,8 +135,9 @@ export type ProcoreProjectsAlbumsPayload = Array<{
134
135
  position: number;
135
136
  private: boolean;
136
137
  updatedAt: string;
137
- }>;
138
- export type ProcoreObservationTypesResponsePayload = Array<{
138
+ };
139
+ export type ProcoreProjectsAlbumsPayload = Array<ProcoreProjectAlbum>;
140
+ export type ProcoreObservationType = {
139
141
  id: number;
140
142
  name: string;
141
143
  localizedName: string;
@@ -147,12 +149,17 @@ export type ProcoreObservationTypesResponsePayload = Array<{
147
149
  parentInactive: boolean;
148
150
  isUse: boolean;
149
151
  nameTranslations: string;
150
- }>;
152
+ };
153
+ export type ProcoreObservationTypesResponsePayload = Array<ProcoreObservationType>;
151
154
  export type ProcoreObservationFormRequestPayload = {
152
155
  projectId: number;
153
156
  companyId: number;
154
157
  observationType: string;
155
158
  };
159
+ export type ProcoreCustomFieldOptionsRequestPayload = {
160
+ optionsUrl: string;
161
+ companyId: number;
162
+ };
156
163
  export type ProcoreObservationForm = Record<string, ProcoreObservationField | ProcoreObservationCustomField>;
157
164
  export type ProcoreObservationField = {
158
165
  name: string;
@@ -1,4 +1,4 @@
1
- import { Automation, AutomationType, DateTime, DateType, PaginationParams } from "@/types";
1
+ import { Automation, AutomationType, DateType, PaginationParams } from "@evercam/api/types";
2
2
  export type ProgressPhotosCreateUpdateRequestPayload = {
3
3
  cameraExids?: string;
4
4
  notifyDays?: string;
@@ -8,6 +8,7 @@ export type ProgressPhotosCreateUpdateRequestPayload = {
8
8
  type?: string;
9
9
  config?: {
10
10
  compareDelay?: AutomationType;
11
+ period?: number;
11
12
  recipients?: string;
12
13
  projectId?: number;
13
14
  companyId?: number;
@@ -24,6 +25,9 @@ export type ProgressPhotosUnSubscribeParams = {
24
25
  export type ProgressPhotosResponsePayload = {
25
26
  progressPhotos: Automation[];
26
27
  };
28
+ export type ProgressPhotoItemResponsePayload = {
29
+ progressPhotos: Automation;
30
+ };
27
31
  export declare enum AutomationDialogType {
28
32
  Create = "create",
29
33
  Edit = "edit",
@@ -70,5 +74,5 @@ export type ProgressPhotosHistory = {
70
74
  cameraIds: string;
71
75
  failedCameraIds: string;
72
76
  subject: string;
73
- recipients: DateTime;
77
+ recipients: string;
74
78
  };
@@ -1,25 +1,56 @@
1
- import { AdminCamera, Camera, CameraExid, DateRangeFilter, DateTime, DateType, EntityByExid, Exid, PaginationParams } from "@/types";
1
+ import { AdminCamera, Camera, CameraExid, DateType, EntityByExid, Exid, Operator, PaginationParams } from "@evercam/api/types";
2
2
  export type ProjectExid = Exid;
3
3
  export type ProjectsByExid = EntityByExid<Project>;
4
4
  export type Project = {
5
- id: string | number;
6
- exid: ProjectExid;
7
- name: string;
8
- status?: ProjectStatus;
9
- insertedAt?: string;
10
- startedAt?: string;
11
- timezone?: string;
12
- zohoId?: string;
13
- userId?: number;
5
+ archiveTier?: ProjectArchiveTier;
14
6
  cameras?: Array<Camera | AdminCamera>;
15
- unrestrictedCameras?: Array<Camera | AdminCamera>;
7
+ camerasCount?: number;
8
+ camerasRestrictionType?: string;
9
+ companyId: number;
10
+ endDate: string;
11
+ exid: ProjectExid;
16
12
  featureFlags: Array<ProjectFeatureFlag>;
13
+ geographicBounds?: unknown;
14
+ id: string | number;
15
+ insertedAt?: string;
16
+ name: string;
17
17
  owner?: {
18
18
  email?: string;
19
19
  };
20
20
  ownerEmail?: string;
21
21
  ownerName?: string;
22
- camerasRestrictionType?: string;
22
+ startedAt?: string;
23
+ status?: ProjectStatus;
24
+ timezone?: string;
25
+ unrestrictedCameras?: Camera[];
26
+ userId?: number;
27
+ zohoId?: string;
28
+ };
29
+ export type AdminProjectCameraRef = {
30
+ exid: string;
31
+ name: string;
32
+ };
33
+ export type AdminProjectListItem = {
34
+ id: number;
35
+ name: string;
36
+ status: ProjectStatus | string;
37
+ insertedAt: string;
38
+ timezone: string | null;
39
+ exid: ProjectExid;
40
+ endDate: string | null;
41
+ startDate: string | null;
42
+ archiveTier: ProjectArchiveTier | null;
43
+ featureFlags: Array<ProjectFeatureFlag | string>;
44
+ zohoId: string | null;
45
+ ownerEmail: string | null;
46
+ companyId: number | null;
47
+ companyName: string | null;
48
+ ownerName: string | null;
49
+ archived: boolean;
50
+ cameras?: AdminProjectCameraRef[];
51
+ };
52
+ export type AdminProjectDetail = AdminProjectListItem & {
53
+ userId: number;
23
54
  };
24
55
  export declare enum ProjectStatus {
25
56
  ToStart = "To Start",
@@ -31,15 +62,22 @@ export declare enum ProjectArchiveTier {
31
62
  Full = "Full",
32
63
  Partial = "Partial",
33
64
  Minimal = "Minimal",
34
- ScheduledForDeletion = "Scheduled for Deletion"
65
+ ScheduledForDeletion = "Scheduled for Deletion",
66
+ No = "No"
35
67
  }
36
- export type ProjectResponsePayload = {
37
- data?: Project[];
38
- };
39
68
  export type UpdateCameraRestrictionPayload = {
40
69
  isAccessRestricted?: boolean;
41
70
  };
71
+ export type CameraPosition = {
72
+ cameraExid: CameraExid;
73
+ position: number;
74
+ };
75
+ export type ReorderCamerasPayload = {
76
+ positions: CameraPosition[];
77
+ };
42
78
  export type Logo = {
79
+ id: number;
80
+ projectId: number;
43
81
  name: string;
44
82
  url: string;
45
83
  };
@@ -53,7 +91,6 @@ export declare enum ProjectFeatureFlag {
53
91
  ThreeSixtyView = "360_view",
54
92
  NdaMc = "NDA/MC",
55
93
  GateReport = "gate_report",
56
- GateReportAutoVerify = "auto_publish",
57
94
  GateReportMotionDetection = "motion_detection",
58
95
  FullEmpty = "full_empty",
59
96
  MediaHubSharing = "archives_sharing",
@@ -61,7 +98,8 @@ export declare enum ProjectFeatureFlag {
61
98
  NoLicensePlate = "no_license_plate",
62
99
  DefaultToProjectApp = "default_to_project_app",
63
100
  SmartSearch = "smart_search",
64
- PpeMonitoring = "ppe_monitoring"
101
+ PpeMonitoring = "ppe_monitoring",
102
+ NoGdpr = "no_gdpr"
65
103
  }
66
104
  export type ProjectBatteryReading = {
67
105
  exid: number;
@@ -79,6 +117,7 @@ export type ProjectsQueryParams = PaginationParams & {
79
117
  status: ProjectStatus;
80
118
  cameras: string;
81
119
  featureFlags: Array<ProjectFeatureFlag>;
120
+ featureFlagsOperator?: Operator;
82
121
  archived: string;
83
122
  };
84
123
  export type ProjectCreateRequestPayload = {
@@ -117,7 +156,7 @@ export type ProjectUserProperty = {
117
156
  eventsCount: number;
118
157
  fullname: string;
119
158
  id: number;
120
- lastSeenAt: DateTime;
159
+ lastSeenAt: string;
121
160
  persona: string;
122
161
  };
123
162
  export type ProjectUsers = {
@@ -127,6 +166,89 @@ export type ProjectUsers = {
127
166
  }[];
128
167
  users: Record<string, ProjectUserProperty[]>;
129
168
  };
130
- export type ProjectDateRangeFilter = DateRangeFilter & {
131
- projectExid: ProjectExid;
169
+ export type ProjectRole = {
170
+ id: number;
171
+ name: string;
172
+ };
173
+ export type ProjectMember = {
174
+ id: string;
175
+ key?: string;
176
+ email: string;
177
+ fullname: string;
178
+ lastSeenAt?: string;
179
+ role: ProjectRole;
180
+ permissions?: string[];
181
+ subRoles?: Array<{
182
+ resourceId: string;
183
+ roleId: number;
184
+ }>;
185
+ company?: {
186
+ name: string;
187
+ } | null;
188
+ };
189
+ export type ProjectInvite = {
190
+ id?: string;
191
+ email: string;
192
+ role?: ProjectRole;
193
+ permissions?: string[];
194
+ subRoles?: Array<{
195
+ resourceId: string;
196
+ roleId: number;
197
+ }>;
198
+ invitedAt?: string;
199
+ };
200
+ export type ProjectMembersResponsePayload = {
201
+ users: ProjectMember[];
202
+ invites: ProjectInvite[];
203
+ errors: ProjectUserError[];
204
+ };
205
+ export type ProjectMembersRequestPayload = {
206
+ roleId: number;
207
+ emails: string[];
208
+ message?: string;
209
+ overrideRole?: Partial<{
210
+ permissions?: string[];
211
+ subRoles?: Array<{
212
+ resourceId: string;
213
+ roleId: number;
214
+ }>;
215
+ }>;
132
216
  };
217
+ export type ProjectInviteMembersResponsePayload = {
218
+ users: ProjectMember[];
219
+ invites: ProjectInvite[];
220
+ };
221
+ export type PlaceholderThumbnailData = {
222
+ placeholder: string;
223
+ };
224
+ export type ProjectUserError = {
225
+ email: string;
226
+ error: Record<string, string[]>;
227
+ };
228
+ export type ProjectUsersResponsePayload = {
229
+ users: ProjectMember[];
230
+ invites: ProjectInvite[];
231
+ errors: ProjectUserError[];
232
+ };
233
+ export type ProjectStorageQueryParams = PaginationParams & {
234
+ cameraName: string;
235
+ cameraExid: CameraExid;
236
+ status: ProjectStorageStatus;
237
+ };
238
+ export type ProjectStorage = {
239
+ id: number;
240
+ cameraExid: CameraExid;
241
+ cameraName: string;
242
+ projectExid: string;
243
+ projectName: string;
244
+ status: ProjectStorageStatus;
245
+ requestor: string;
246
+ created_at: DateType;
247
+ };
248
+ export declare enum ProjectStorageStatus {
249
+ New = "new",
250
+ Pending = "pending",
251
+ Processing = "processing",
252
+ Completed = "completed",
253
+ Failed = "failed"
254
+ }
@@ -1,21 +1,24 @@
1
- import { ApiCredentials } from "@/types";
1
+ import { ApiCredentials, PaginationParams } from "@evercam/api/types";
2
2
  import { CancelToken } from "axios";
3
3
  export type Snapshot = {
4
4
  createdAt: string;
5
5
  data: string;
6
6
  status?: string;
7
7
  };
8
- export type NearestSnapshotRequestPayload = {
8
+ export type SnapshotRequestPayload = {
9
9
  apiKey?: string;
10
10
  apiId?: string;
11
11
  token?: string;
12
12
  cancelToken?: object;
13
+ includeImage?: boolean;
14
+ view?: boolean;
13
15
  };
14
16
  export type AvailableDaysRequestPayload = {
15
17
  cameraId: string;
16
18
  year: string;
17
19
  month: string;
18
20
  payload?: ApiCredentials;
21
+ cancelToken?: CancelToken;
19
22
  };
20
23
  export type AvailableDaysResponsePayload = {
21
24
  days: Array<number>;
@@ -38,11 +41,9 @@ export type NearestSnapshotResponsePayload = {
38
41
  notes?: string;
39
42
  }>;
40
43
  };
41
- export type SnapshotRangeRequestPayload = {
44
+ export type SnapshotRangeRequestPayload = PaginationParams & {
42
45
  from: string;
43
46
  to: string;
44
- limit?: number;
45
- page?: number;
46
47
  schedule?: boolean;
47
48
  count?: number;
48
49
  };
@@ -55,8 +56,7 @@ export type SnapshotRangeResponsePayload = {
55
56
  snapshots: Array<SnapshotInstance>;
56
57
  };
57
58
  export declare enum BrainTool {
58
- Detections = "detections",
59
- Segmentation = "sam"
59
+ Detections = "detections"
60
60
  }
61
61
  export declare enum CloudRecordingFrequency {
62
62
  EverySecond = 60,
@@ -76,6 +76,7 @@ export declare enum CloudRecordingDuration {
76
76
  Month = 30,
77
77
  ThreeMonths = 90
78
78
  }
79
+ export declare const CloudRecordingDurationLabel: Record<CloudRecordingDuration, string>;
79
80
  export declare enum CloudRecordingStatus {
80
81
  On = "on",
81
82
  Off = "off",
@@ -103,13 +104,6 @@ export declare enum SnapshotExtractionInterval {
103
104
  }
104
105
  export declare enum VpnServer {
105
106
  None = "None",
106
- OpenVPN1 = "OpenVPN1",
107
- OpenVPN2 = "OpenVPN2",
108
- OpenVPN3 = "OpenVPN3",
109
- OpenVPN4 = "OpenVPN4",
110
- OpenVPN5 = "OpenVPN5",
111
- PPTP1 = "PPTP1",
112
- PPTP2 = "PPTP2",
113
107
  WireGuard1 = "WireGuard1",
114
108
  WireGuard2 = "WireGuard2",
115
109
  WireGuard3 = "WireGuard3",
@@ -119,5 +113,6 @@ export declare enum VpnServer {
119
113
  WireGuard7 = "WireGuard7",
120
114
  WireGuard8 = "WireGuard8",
121
115
  WireGuard9 = "WireGuard9",
122
- WireGuard10 = "WireGuard10"
116
+ WireGuard10 = "WireGuard10",
117
+ WgHub = "WgHub"
123
118
  }
@@ -1,4 +1,4 @@
1
- import type { DateType, PaginationParams } from "@/types";
1
+ import type { DateType, PaginationParams } from "@evercam/api/types";
2
2
  export type RecycleBin = {
3
3
  id?: number;
4
4
  exid: string;
@@ -0,0 +1,53 @@
1
+ export type RingCompleteLinkingPayload = {
2
+ nonce: string;
3
+ time: string;
4
+ };
5
+ /** The only auto-import status complete-linking returns today. */
6
+ export declare const RING_AUTO_IMPORT_QUEUED = "queued";
7
+ export type RingAutoImportStatus = typeof RING_AUTO_IMPORT_QUEUED;
8
+ export type RingCompleteLinkingResponsePayload = {
9
+ status: string;
10
+ /** Absent when the API did not schedule an import. */
11
+ autoImport?: RingAutoImportStatus;
12
+ };
13
+ export type RingDevice = {
14
+ deviceId: string;
15
+ name: string;
16
+ /** Resolved from Ring's `device-status`; null when Ring did not return it. */
17
+ online: boolean | null;
18
+ deviceType: string | null;
19
+ firmwareVersion: string | null;
20
+ /** Always null — Ring's API does not expose device power level. */
21
+ batteryLife: number | null;
22
+ location: string | null;
23
+ imported: boolean;
24
+ cameraExid?: string;
25
+ projectExid?: string;
26
+ projectName?: string;
27
+ };
28
+ export type RingDevicesResponsePayload = {
29
+ devices: RingDevice[];
30
+ };
31
+ export type RingMoveDevicePayload = {
32
+ projectExid: string;
33
+ };
34
+ export type RingMoveDeviceResponsePayload = {
35
+ status: string;
36
+ cameraExid: string;
37
+ projectExid: string;
38
+ };
39
+ export type RingLiveViewPayload = {
40
+ sdpOffer: string;
41
+ };
42
+ export type RingLiveViewResponse = {
43
+ sdpAnswer: string;
44
+ sessionUrl: string;
45
+ iceServers: Array<{
46
+ urls: string;
47
+ username?: string;
48
+ credential?: string;
49
+ }>;
50
+ };
51
+ export type RingStopLiveViewResponse = {
52
+ status: string;
53
+ };