@evercam/api 1.0.0-ca4bfd0ab → 1.0.0-cb5ac4ad5

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 (147) hide show
  1. package/README.md +4 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +209 -0
  3. package/dist/api/api/adminApi.d.ts +381 -0
  4. package/dist/api/api/aiApi.d.ts +251 -0
  5. package/dist/api/api/authzApi.d.ts +40 -0
  6. package/dist/api/{client → api/client}/axios.d.ts +2 -1
  7. package/dist/api/{client → api/client}/customErrors.d.ts +10 -0
  8. package/dist/api/{client → api/client}/interceptors.d.ts +1 -1
  9. package/dist/api/api/client/swr/Swr.d.ts +14 -0
  10. package/dist/api/api/client/swr/SwrStore.d.ts +10 -0
  11. package/dist/api/api/evercamApi.d.ts +362 -0
  12. package/dist/api/api/evercamLabsApi.d.ts +34 -0
  13. package/dist/api/{exNvrApi.d.ts → api/exNvrApi.d.ts} +1 -1
  14. package/dist/api/api/index.d.ts +14 -0
  15. package/dist/api/api/ingestApi.d.ts +161 -0
  16. package/dist/api/{ptzApi.d.ts → api/ptzApi.d.ts} +12 -3
  17. package/dist/api/api/videoWallApi.d.ts +9 -0
  18. package/dist/api/api/weatherApi.d.ts +9 -0
  19. package/dist/api/api/workflowsApi.d.ts +15 -0
  20. package/dist/api/index.d.ts +3 -13
  21. package/dist/api/types/360.d.ts +362 -0
  22. package/dist/api/types/aconex.d.ts +143 -0
  23. package/dist/api/types/admin.d.ts +51 -0
  24. package/dist/api/types/aiConfigs.d.ts +244 -0
  25. package/dist/{types → api/types}/analytics.d.ts +228 -96
  26. package/dist/{types → api/types}/anpr.d.ts +56 -13
  27. package/dist/{types → api/types}/auditLogs.d.ts +19 -2
  28. package/dist/api/types/authz.d.ts +132 -0
  29. package/dist/{types → api/types}/autodesk.d.ts +7 -7
  30. package/dist/api/types/automation.d.ts +123 -0
  31. package/dist/{types → api/types}/axios.d.ts +32 -11
  32. package/dist/{types → api/types}/bim.d.ts +38 -9
  33. package/dist/{types → api/types}/camera.d.ts +142 -165
  34. package/dist/api/types/comments.d.ts +64 -0
  35. package/dist/api/types/company.d.ts +115 -0
  36. package/dist/{types → api/types}/compare.d.ts +20 -5
  37. package/dist/api/types/connector.d.ts +21 -0
  38. package/dist/api/types/coolify.d.ts +36 -0
  39. package/dist/{types → api/types}/countries.d.ts +0 -7
  40. package/dist/{types → api/types}/credentials.d.ts +1 -0
  41. package/dist/api/types/detections.d.ts +117 -0
  42. package/dist/api/types/drone.d.ts +106 -0
  43. package/dist/{types → api/types}/errors.d.ts +25 -0
  44. package/dist/{types → api/types}/gateReport.d.ts +49 -168
  45. package/dist/api/types/gateReportManagement.d.ts +170 -0
  46. package/dist/api/types/hammertech.d.ts +98 -0
  47. package/dist/{types → api/types}/hdd.d.ts +26 -1
  48. package/dist/{types → api/types}/index.d.ts +22 -4
  49. package/dist/api/types/ingest.d.ts +234 -0
  50. package/dist/{types → api/types}/kit.d.ts +132 -56
  51. package/dist/api/types/map.d.ts +16 -0
  52. package/dist/{types → api/types}/media.d.ts +9 -3
  53. package/dist/api/types/notification.d.ts +107 -0
  54. package/dist/api/types/oauth.d.ts +62 -0
  55. package/dist/api/types/observationEvents.d.ts +141 -0
  56. package/dist/api/types/observations.d.ts +84 -0
  57. package/dist/api/types/planner.d.ts +125 -0
  58. package/dist/api/types/posthog.d.ts +53 -0
  59. package/dist/api/types/procore.d.ts +229 -0
  60. package/dist/{types → api/types}/progressPhoto.d.ts +11 -23
  61. package/dist/api/types/project.d.ts +260 -0
  62. package/dist/{types → api/types}/recording.d.ts +10 -16
  63. package/dist/api/types/recycleBin.d.ts +14 -0
  64. package/dist/api/types/ring.d.ts +53 -0
  65. package/dist/{types → api/types}/roi.d.ts +2 -9
  66. package/dist/{types → api/types}/routeParams.d.ts +5 -2
  67. package/dist/{types → api/types}/router.d.ts +20 -1
  68. package/dist/{types → api/types}/shared.d.ts +29 -30
  69. package/dist/api/types/shares.d.ts +45 -0
  70. package/dist/{types → api/types}/sim.d.ts +6 -6
  71. package/dist/api/types/siteAnalytics.d.ts +285 -0
  72. package/dist/api/types/siteAnalyticsManagement.d.ts +127 -0
  73. package/dist/api/types/siteView.d.ts +78 -0
  74. package/dist/api/types/smartSeach.d.ts +5 -0
  75. package/dist/api/types/snapshots.d.ts +104 -0
  76. package/dist/api/types/socket.d.ts +4 -0
  77. package/dist/api/types/sso.d.ts +55 -0
  78. package/dist/api/types/storageProvider.d.ts +19 -0
  79. package/dist/api/types/storyblok.d.ts +27 -0
  80. package/dist/{types → api/types}/streaming.d.ts +4 -25
  81. package/dist/api/types/systemCheck.d.ts +11 -0
  82. package/dist/api/types/tag.d.ts +12 -0
  83. package/dist/api/types/time.d.ts +7 -0
  84. package/dist/{types → api/types}/timelapse.d.ts +7 -11
  85. package/dist/{types → api/types}/user.d.ts +121 -40
  86. package/dist/api/types/videoWall.d.ts +66 -0
  87. package/dist/api/types/weather.d.ts +153 -0
  88. package/dist/{types → api/types}/widget.d.ts +96 -16
  89. package/dist/api/types/workflows.d.ts +108 -0
  90. package/dist/api/types/xweather.d.ts +12 -0
  91. package/dist/{utils.d.ts → api/utils.d.ts} +1 -0
  92. package/dist/index.d.ts +2 -3
  93. package/dist/index.js +3010 -1126
  94. package/dist/index.js.map +1 -1
  95. package/dist/index.umd.cjs +1 -1
  96. package/dist/index.umd.cjs.map +1 -1
  97. package/dist/shared/api/index.d.ts +3 -0
  98. package/dist/shared/components/timelinePlayer/providers/index.d.ts +3 -0
  99. package/dist/shared/components/timelinePlayer/providers/timelineAnprProvider.d.ts +17 -0
  100. package/dist/shared/components/timelinePlayer/providers/timelineDataProvider.d.ts +13 -0
  101. package/dist/shared/components/timelinePlayer/providers/timelineLuminanceProvider.d.ts +16 -0
  102. package/dist/shared/types/components.d.ts +512 -0
  103. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  104. package/dist/shared/types/imagePlayer.d.ts +41 -0
  105. package/dist/shared/types/index.d.ts +7 -0
  106. package/dist/shared/types/observations.d.ts +25 -0
  107. package/dist/shared/types/rbac.d.ts +67 -0
  108. package/dist/shared/types/timeline.d.ts +10 -0
  109. package/package.json +8 -5
  110. package/dist/api/3dFirebaseApi.d.ts +0 -9
  111. package/dist/api/adminApi.d.ts +0 -304
  112. package/dist/api/aiApi.d.ts +0 -110
  113. package/dist/api/authzApi.d.ts +0 -21
  114. package/dist/api/evercamApi.d.ts +0 -266
  115. package/dist/api/evercamLabsApi.d.ts +0 -46
  116. package/dist/api/ingestApi.d.ts +0 -65
  117. package/dist/api/videoWallApi.d.ts +0 -9
  118. package/dist/api/weatherApi.d.ts +0 -27
  119. package/dist/types/360.d.ts +0 -83
  120. package/dist/types/aconex.d.ts +0 -45
  121. package/dist/types/automation.d.ts +0 -6
  122. package/dist/types/comments.d.ts +0 -36
  123. package/dist/types/company.d.ts +0 -46
  124. package/dist/types/connector.d.ts +0 -16
  125. package/dist/types/coolify.d.ts +0 -18
  126. package/dist/types/copilot.d.ts +0 -157
  127. package/dist/types/detections.d.ts +0 -76
  128. package/dist/types/devices.d.ts +0 -228
  129. package/dist/types/drone.d.ts +0 -17
  130. package/dist/types/ingest.d.ts +0 -43
  131. package/dist/types/map.d.ts +0 -4
  132. package/dist/types/notification.d.ts +0 -27
  133. package/dist/types/planner.d.ts +0 -28
  134. package/dist/types/procore.d.ts +0 -76
  135. package/dist/types/project.d.ts +0 -119
  136. package/dist/types/shares.d.ts +0 -192
  137. package/dist/types/siteAnalytics.d.ts +0 -84
  138. package/dist/types/snapshots.d.ts +0 -50
  139. package/dist/types/storageServers.d.ts +0 -4
  140. package/dist/types/time.d.ts +0 -19
  141. package/dist/types/vendorModel.d.ts +0 -15
  142. package/dist/types/videoWall.d.ts +0 -33
  143. package/dist/types/weather.d.ts +0 -83
  144. /package/dist/api/{client → api/client}/index.d.ts +0 -0
  145. /package/dist/api/{webRtcApi.d.ts → api/webRtcApi.d.ts} +0 -0
  146. /package/dist/{types → api/types}/nvr.d.ts +0 -0
  147. /package/dist/{types → api/types}/voyageControl.d.ts +0 -0
@@ -0,0 +1,3 @@
1
+ export * from "@evercam/api/api";
2
+ import { axios } from "@evercam/api/api";
3
+ export default axios;
@@ -0,0 +1,3 @@
1
+ export * from "./timelineDataProvider";
2
+ export * from "./timelineAnprProvider";
3
+ export * from "./timelineLuminanceProvider";
@@ -0,0 +1,17 @@
1
+ import { TimelineCountEvent, TimelineEvent } from "@evercam/ui";
2
+ import { CameraExid, ProjectExid, TimelineDateInterval, TimelineProviderRequestParams } from "@evercam/shared/types";
3
+ import { TimelineDataProvider } from "./timelineDataProvider";
4
+ export declare class TimelineAnprProvider extends TimelineDataProvider {
5
+ readonly projectExid: ProjectExid;
6
+ readonly cameraExid: CameraExid;
7
+ readonly token: string;
8
+ constructor(params: {
9
+ timezone: string;
10
+ projectExid: ProjectExid;
11
+ cameraExid: CameraExid;
12
+ token: string;
13
+ });
14
+ fetchEvents({ fromDate, toDate, }: TimelineDateInterval): Promise<Array<TimelineEvent>>;
15
+ fetchCounts({ fromDate, toDate, precision, }: TimelineProviderRequestParams): Promise<Array<TimelineCountEvent>>;
16
+ private getFormattedPlateNumber;
17
+ }
@@ -0,0 +1,13 @@
1
+ import { type TimelineCountEvent, type TimelineEvent, type TimelineRangeEvent } from "@evercam/ui";
2
+ import { type TimelineDateInterval, TimelinePrecision, type TimelineProviderRequestParams } from "@evercam/shared/types";
3
+ export declare abstract class TimelineDataProvider {
4
+ protected timezone: string;
5
+ constructor(timezone: string);
6
+ fetch(params: TimelineProviderRequestParams): Promise<Array<TimelineEvent>>;
7
+ protected abstract fetchEvents(params: TimelineProviderRequestParams): Promise<Array<TimelineEvent>>;
8
+ protected abstract fetchCounts(params: TimelineProviderRequestParams): Promise<Array<TimelineCountEvent | TimelineRangeEvent>>;
9
+ formatTimestamp(date: string, format?: string): string;
10
+ processResponseIntervals(intervals: TimelineDateInterval[], precision: TimelinePrecision): TimelineRangeEvent[];
11
+ private convertAndRoundIntervals;
12
+ private groupAdjacentIntervals;
13
+ }
@@ -0,0 +1,16 @@
1
+ import { type TimelineCountEvent, type TimelineEvent } from "@evercam/ui";
2
+ import { type CameraExid, type ProjectExid, type TimelineDateInterval, type TimelineProviderRequestParams } from "@evercam/shared/types";
3
+ import { TimelineDataProvider } from "./timelineDataProvider";
4
+ export declare class TimelineLuminanceProvider extends TimelineDataProvider {
5
+ readonly projectExid: ProjectExid;
6
+ readonly cameraExid: CameraExid;
7
+ readonly token: string;
8
+ constructor(params: {
9
+ timezone: string;
10
+ projectExid: ProjectExid;
11
+ cameraExid: CameraExid;
12
+ token: string;
13
+ });
14
+ fetchEvents({ fromDate, toDate, }: TimelineDateInterval): Promise<Array<TimelineEvent>>;
15
+ fetchCounts({ fromDate, toDate, }: TimelineProviderRequestParams): Promise<Array<TimelineCountEvent>>;
16
+ }
@@ -0,0 +1,512 @@
1
+ import { type _360Scene, type Media, type DroneModel, type MobileCaptureSnapshot, type TimelineDateInterval, type TimelinePrecision, type Comment, type ProcoreUserProject, type ProcoreProjectAlbum, type ProcoreObservationType, type AconexUserProject, type AutodeskUserHub, type AutodeskProject, type AutodeskFolder, type ProcoreType, type HammertechProject, type HammertechIssueType, type HammertechPriority, type HammertechClassification, type HammertechFileFieldValue, Tag, TuplePoint2D, CameraStatus } from "@evercam/shared/types";
2
+ import type { _360AssetType, AdminCamera, Camera, IngestUploadInitResponse } from "@evercam/api/types";
3
+ import type { TimelineChartType, TimelineEvent, TimelineEventsGroup } from "@evercam/ui";
4
+ import { TimelineDataProvider } from "@evercam/shared/components/timelinePlayer/providers";
5
+ import { SeriesOptionsType } from "highcharts";
6
+ export type ReorderableCamera = Camera & {
7
+ thumbnailSrc?: string;
8
+ batteryLevel?: {
9
+ voltage: number;
10
+ level: string;
11
+ icon: string;
12
+ color: string;
13
+ } | null;
14
+ };
15
+ export type SelectItem = {
16
+ text: string;
17
+ value: string | number;
18
+ };
19
+ export type RoiProjectGroup = {
20
+ exid: string;
21
+ name: string;
22
+ cameras: AdminCamera[];
23
+ };
24
+ export declare enum IframeMessageType {
25
+ LiveView = "liveView",
26
+ EditSnapshot = "editSnapshot",
27
+ Weather = "weather",
28
+ CameraInfo = "cameraInfo",
29
+ AnalyticsEvent = "analyticsEvent",
30
+ Ready = "ready",
31
+ Info = "info",
32
+ GateReport = "gateReport",
33
+ CreateCompare = "createCompare",
34
+ UploadDrone = "uploadDrone",
35
+ UploadBIM = "uploadBIM",
36
+ History = "history",
37
+ PerformanceScore = "performanceScore",
38
+ ShareLink = "shareLink",
39
+ LoadForgeModel = "loadForgeModel",
40
+ LoadPlannerList = "loadPlannerList",
41
+ SaveProjectBounds = "saveProjectBounds",
42
+ ArchiveComment = "archiveComment",
43
+ UnarchiveComment = "unarchiveComment",
44
+ DeleteComment = "deleteComment",
45
+ CreateComment = "createComment",
46
+ RefreshComments = "refreshComments",
47
+ CommentSyncFailed = "commentSyncFailed",
48
+ Load360Gallery = "load360Gallery",
49
+ Upload360 = "upload360",
50
+ FetchForgeToken = "FetchForgeToken",
51
+ ForgeTokenResponse = "ForgeTokenResponse",
52
+ ShowBimUploadChoice = "showBimUploadChoice",
53
+ ViewerLaunchFlags = "viewerLaunchFlags",
54
+ Fetch360DrawingIds = "fetch360DrawingIds",
55
+ DrawingIdsResponse = "drawingIdsResponse",
56
+ CloseCameraMarkerPreview = "CloseCameraMarkerPreview",
57
+ ChatInit = "chatInit",
58
+ ChatToken = "chatToken",
59
+ ChatContext = "chatContext",
60
+ ChatTheme = "chatTheme",
61
+ ChatNavigate = "chatNavigate",
62
+ ChatConversations = "chatConversations",
63
+ ChatOpenConversation = "chatOpenConversation",
64
+ ChatNewConversation = "chatNewConversation",
65
+ ChatRenameConversation = "chatRenameConversation",
66
+ ChatDeleteConversation = "chatDeleteConversation",
67
+ ChatOpenWalkMarker = "chatOpenWalkMarker",
68
+ ProjectMembers = "projectMembers",
69
+ FocusComment = "focusComment"
70
+ }
71
+ export declare enum ChatTheme {
72
+ Dark = "dark",
73
+ Light = "light"
74
+ }
75
+ export type ChatUser = {
76
+ email: string;
77
+ name: string;
78
+ };
79
+ /**
80
+ * The dashboard's answer to the frame's `Ready`.
81
+ *
82
+ * The token travels here and nowhere else — never in the iframe URL, which
83
+ * would land it in history, referrers and logs.
84
+ */
85
+ export type ChatInitPayload = {
86
+ token: string;
87
+ user: ChatUser;
88
+ theme: ChatTheme;
89
+ timezone: string;
90
+ };
91
+ /** Pushed on rotation. A frame holding a mount-time token 401s the moment it changes. */
92
+ export type ChatTokenPayload = {
93
+ token: string;
94
+ };
95
+ /** Pushed on every dashboard route change. */
96
+ export type ChatContextPayload = {
97
+ pageId: string;
98
+ projectExid: string | null;
99
+ projectName: string | null;
100
+ cameraExid: string | null;
101
+ timezone: string;
102
+ /**
103
+ * A conversation to open, from `?chat=` on the dashboard's URL.
104
+ *
105
+ * Deep-linking lives in the *context* rather than in a message of its own
106
+ * because it is exactly that — a fact about where the host currently is, sent
107
+ * on every route change alongside the project and page. `null` means "no
108
+ * opinion", which is what every other page sends.
109
+ */
110
+ chatId: string | null;
111
+ };
112
+ export type ChatThemePayload = {
113
+ theme: ChatTheme;
114
+ };
115
+ /**
116
+ * A page id plus params, never a route string — the dashboard owns the
117
+ * id → route mapping.
118
+ */
119
+ export type ChatNavigatePayload = {
120
+ pageId: string;
121
+ params: Record<string, string>;
122
+ };
123
+ /**
124
+ * Open a 360-walk marker in the 360 viewer, facing one view.
125
+ *
126
+ * Sent by Chat when a `WalkView` in an answer is clicked. The dashboard opens the
127
+ * 360 app in its own dialog (`Walk360Preview`), outside the chat frame, so the
128
+ * viewer gets the whole screen. `walkName` and `walkDate` are how the 360 app
129
+ * knows a walk (its `floor` and `date` URL params); `camera` is the viewer's own
130
+ * azimuth/polar angles for that view, or null to open at the marker's default.
131
+ */
132
+ export type ChatOpenWalkMarkerPayload = {
133
+ projectExid: string;
134
+ walkId: string;
135
+ walkName: string;
136
+ walkDate: string;
137
+ markerId: string;
138
+ view: string;
139
+ camera: {
140
+ azimuthAngle: number;
141
+ polarAngle: number;
142
+ } | null;
143
+ };
144
+ /**
145
+ * One conversation, as the dashboard's sidebar needs it.
146
+ *
147
+ * A deliberate projection of the engine's `ChatSession` — a label and a
148
+ * timestamp, nothing else. The transcript stays in the frame: mirroring `turns`
149
+ * would put every message of every conversation on the bridge each time the list
150
+ * changed, to render a row that shows neither.
151
+ */
152
+ export type ChatSessionSummary = {
153
+ id: string;
154
+ title: string | null;
155
+ updatedAt: string;
156
+ };
157
+ /**
158
+ * The frame's conversation list, mirrored up for the left sidebar to draw.
159
+ *
160
+ * The frame stays the single owner of this data — it holds the engine client and
161
+ * the bearer. The host renders and sends intent back; it never fetches.
162
+ */
163
+ export type ChatConversationsPayload = {
164
+ sessions: ChatSessionSummary[];
165
+ openId: string | null;
166
+ isLoading: boolean;
167
+ };
168
+ export type ChatOpenConversationPayload = {
169
+ id: string;
170
+ };
171
+ export type ChatRenameConversationPayload = {
172
+ id: string;
173
+ title: string;
174
+ };
175
+ export type ChatDeleteConversationPayload = {
176
+ id: string;
177
+ };
178
+ export declare enum NavigationArrow {
179
+ Previous = "previous",
180
+ Next = "next"
181
+ }
182
+ export declare enum WatermarkedImageDownloadOrigin {
183
+ Drone = "drone",
184
+ Bim = "BIM",
185
+ Snapshot = "snapshot",
186
+ The360 = "360",
187
+ Planner = "Planner"
188
+ }
189
+ export declare enum PlayerMode {
190
+ Video = "video",
191
+ Jpegs = "jpegs"
192
+ }
193
+ export type TimelineProviderRequestParams = TimelineDateInterval & {
194
+ precision?: TimelinePrecision;
195
+ labels?: string[];
196
+ trackId?: number;
197
+ };
198
+ export type TimelinePlayerGroupConfig = {
199
+ provider?: TimelineDataProvider;
200
+ events?: Array<TimelineEvent>;
201
+ getChartType?: (precision: TimelinePrecision) => TimelineChartType;
202
+ } & Omit<TimelineEventsGroup, "events">;
203
+ export type TimelinePlayerConfig = {
204
+ [groupName: string]: TimelinePlayerGroupConfig;
205
+ };
206
+ export declare enum TimelineGroupId {
207
+ ThreeSixty = "w360",
208
+ Drone = "drone",
209
+ Bim = "bim",
210
+ Media = "media",
211
+ Comments = "comments",
212
+ Anpr = "anpr",
213
+ MobileCapture = "mobileCapture",
214
+ ExNvrRecordings = "exNvrRecordings",
215
+ Luminance = "luminance",
216
+ ObjectInspector = "objectInspector"
217
+ }
218
+ export type TimelineOverlayType = TimelineGroupId.ThreeSixty | TimelineGroupId.Drone | TimelineGroupId.Media | TimelineGroupId.MobileCapture | TimelineGroupId.Bim | TimelineGroupId.Comments | "compare";
219
+ export type TimelineOverlayData<T extends TimelineOverlayType> = T extends TimelineGroupId.ThreeSixty ? _360Scene : T extends TimelineGroupId.Drone ? DroneModel : T extends TimelineGroupId.Media ? Media : T extends TimelineGroupId.MobileCapture ? MobileCaptureSnapshot : T extends TimelineGroupId.Comments ? Comment : never;
220
+ export declare enum TimelineMarkerId {
221
+ Xray = "xray",
222
+ CurrentSnapshot = "current",
223
+ CompareBeforeSnapshot = "compareBefore",
224
+ CompareAfterSnapshot = "compareAfter",
225
+ ObjectInspectorFirstSeen = "firstSeen",
226
+ ObjectInspectorLastSeen = "lastSeen"
227
+ }
228
+ export type TimelineMediaHubItemsByType = {
229
+ clip?: Media[];
230
+ compare?: Media[];
231
+ edit?: Media[];
232
+ timelapse?: Media[];
233
+ xRay?: Media[];
234
+ };
235
+ export declare enum HighchartsStackingBehavior {
236
+ Overlap = "overlap",
237
+ Normal = "normal",
238
+ Percent = "percent",
239
+ Stream = "stream"
240
+ }
241
+ export declare enum LeaderLinePlugType {
242
+ Disc = "disc",
243
+ Square = "square",
244
+ Arrow1 = "arrow1",
245
+ Arrow2 = "arrow2",
246
+ Arrow3 = "arrow3",
247
+ Hand = "hand",
248
+ CrossHair = "crosshair",
249
+ Behind = "behind"
250
+ }
251
+ export declare enum LeaderLinesPathType {
252
+ Straight = "straight",
253
+ Arc = "arc",
254
+ Fluid = "fluid",
255
+ Magnet = "magnet",
256
+ Grid = "grid"
257
+ }
258
+ export declare enum LeaderLinesSocketPosition {
259
+ Top = "top",
260
+ Right = "right",
261
+ Bottom = "bottom",
262
+ Left = "left",
263
+ Auto = "auto"
264
+ }
265
+ export type LeaderLineOptions = {
266
+ startSocket?: LeaderLinesSocketPosition;
267
+ endSocket?: LeaderLinesSocketPosition;
268
+ color?: string | ((element: any) => string);
269
+ size?: number;
270
+ startPlug?: LeaderLinePlugType;
271
+ endPlug?: LeaderLinePlugType;
272
+ startPlugSize?: number;
273
+ endPlugSize?: number;
274
+ path?: LeaderLinesPathType;
275
+ startSocketGravity?: TuplePoint2D;
276
+ endSocketGravity?: TuplePoint2D;
277
+ dash?: {
278
+ animation: boolean | {
279
+ duration: number;
280
+ };
281
+ } | ((element: any) => {
282
+ animation: boolean | {
283
+ duration: number;
284
+ };
285
+ });
286
+ };
287
+ export type CssSelector = string;
288
+ export type LineConfig = {
289
+ start: CssSelector | CssSelector[];
290
+ end: CssSelector | CssSelector[];
291
+ options?: LeaderLineOptions;
292
+ };
293
+ export declare enum ZohoDeskTicketStatus {
294
+ Closed = "Closed",
295
+ OnHold = "On Hold",
296
+ Open = "Open"
297
+ }
298
+ export type TagSelectorItem = Tag & {
299
+ isExcluded?: boolean;
300
+ };
301
+ export declare enum FormSchemaComponents {
302
+ SelectField = "SelectField",
303
+ HierarchicalSelect = "HierarchicalSelectField",
304
+ MultiOption = "MultiOption",
305
+ TextField = "TextField",
306
+ SwitchField = "SwitchField",
307
+ CheckBox = "CheckBoxField",
308
+ Date = "DatePickerInput",
309
+ DateTime = "DateTimeField",
310
+ Time = "TimeField",
311
+ TextArea = "Textarea",
312
+ Search = "Autocomplete",
313
+ ReadOnly = "ReadOnly",
314
+ Ratio = "RatioField"
315
+ }
316
+ export declare enum FormSchemaDataType {
317
+ String = "string",
318
+ Number = "number",
319
+ Boolean = "boolean",
320
+ Date = "date"
321
+ }
322
+ export type FormSchemaOptions = {
323
+ title: string;
324
+ value: string;
325
+ parentId?: string | null;
326
+ };
327
+ export type FormSchemaField = {
328
+ id: string;
329
+ component: FormSchemaComponents;
330
+ required?: boolean;
331
+ name: string;
332
+ options?: FormSchemaOptions[];
333
+ disabled?: boolean;
334
+ dataType: FormSchemaDataType;
335
+ multiple?: boolean;
336
+ defaultValue?: any;
337
+ columns?: number;
338
+ };
339
+ export type FormSchema = Record<string, FormSchemaField>;
340
+ export type DrawingStats = {
341
+ overlay: boolean;
342
+ geolocated: boolean;
343
+ isCalibrated: boolean;
344
+ walks: number;
345
+ markers: number;
346
+ minimodel: number;
347
+ bim: number;
348
+ comments: number;
349
+ lastCapturedDate: string | null;
350
+ };
351
+ export interface ScrollListener {
352
+ element: Element | Window;
353
+ event: "scroll" | "resize";
354
+ handler: () => void;
355
+ }
356
+ export interface LeaderLineInstance {
357
+ remove(): void;
358
+ position(): void;
359
+ }
360
+ export type SnapshotCardItem = {
361
+ label?: string;
362
+ title?: string;
363
+ thumbnailUrl: string;
364
+ placeholderThumbnailUrl?: string;
365
+ fallbackThumbnailUrl?: string;
366
+ };
367
+ export type HighchartsSeriesWithData<T extends number = number> = SeriesOptionsType & {
368
+ data: T[];
369
+ };
370
+ export type NotificationTitleSegment = {
371
+ text: string;
372
+ isBold?: boolean;
373
+ };
374
+ export type FormattedNotificationData = {
375
+ title: string;
376
+ titleSegments?: NotificationTitleSegment[];
377
+ link: string;
378
+ thumbnail?: string;
379
+ icon: string;
380
+ excerpt?: string;
381
+ commentTarget?: {
382
+ commentId: number;
383
+ dateId: string | number;
384
+ floorId: string;
385
+ };
386
+ };
387
+ export type FormattedNotification = FormattedNotificationData & {
388
+ date: string;
389
+ read: boolean;
390
+ id: number;
391
+ thumbnailError?: boolean;
392
+ };
393
+ export type ProcoreProjectStepData = {
394
+ project: ProcoreUserProject | null;
395
+ album: ProcoreProjectAlbum | null;
396
+ observationType: ProcoreObservationType | null;
397
+ };
398
+ export type ProcoreUploadFormData = {
399
+ procoreType: ProcoreType;
400
+ project: ProcoreUserProject | null;
401
+ album: ProcoreProjectAlbum | null;
402
+ observationType: ProcoreObservationType | null;
403
+ observationForm: Record<string, string | number | boolean | null>;
404
+ };
405
+ export type AconexUploadFormData = {
406
+ project: AconexUserProject | null;
407
+ form: Record<string, string | number | boolean | null>;
408
+ };
409
+ export type AutodeskUploadFormData = {
410
+ hub: AutodeskUserHub | null;
411
+ project: AutodeskProject | null;
412
+ folder: AutodeskFolder | null;
413
+ };
414
+ export type HammertechUploadFormData = {
415
+ project: HammertechProject | null;
416
+ issueType: HammertechIssueType | null;
417
+ description: string;
418
+ priority: HammertechPriority | null;
419
+ dueDate: string | null;
420
+ classification: HammertechClassification | null;
421
+ locationId: string | null;
422
+ isPositiveObservation: boolean;
423
+ isPhotoForFixRequired: boolean;
424
+ customFieldFormId: string | null;
425
+ customFieldValues: Record<string, unknown>;
426
+ fileCustomFieldValues: Record<string, HammertechFileFieldValue>;
427
+ };
428
+ export interface MediaHubFilters {
429
+ title: string;
430
+ requesterEmail: string | undefined;
431
+ camera: string | undefined;
432
+ type: string;
433
+ fromDate: string;
434
+ toDate: string;
435
+ sortBy: string;
436
+ }
437
+ export interface MediaHubSortParameter {
438
+ label: string;
439
+ value: string;
440
+ }
441
+ export type TableHeaderParams<TItem = unknown> = {
442
+ value: string;
443
+ text: string;
444
+ align?: string;
445
+ sortable?: boolean;
446
+ visible?: boolean;
447
+ width?: number | string;
448
+ copyable?: boolean;
449
+ toStringFn?: (item: TItem, key: string) => any;
450
+ sort?: (a: unknown, b: unknown) => number;
451
+ };
452
+ export type BimUploadObject = IngestUploadInitResponse & {
453
+ projectName: string;
454
+ };
455
+ export type BimUploadFileResult = {
456
+ url: string;
457
+ title: string;
458
+ fileExtension: string;
459
+ };
460
+ export type CameraCardItem = {
461
+ thumbnail: string;
462
+ title: string;
463
+ exid: string;
464
+ status: CameraStatus;
465
+ disabled: boolean;
466
+ to: string;
467
+ isOffline: boolean;
468
+ isWaiting: boolean;
469
+ isUnderNda: boolean;
470
+ isAdmin: boolean;
471
+ batteryVoltage: number | null;
472
+ };
473
+ export type ThreeSixtyGalleryView = "drawings" | "walks";
474
+ export interface ThreeSixtyWalk {
475
+ id: string;
476
+ name: string;
477
+ date: string;
478
+ monthKey: string;
479
+ color: string;
480
+ dateId: string;
481
+ floorId: string;
482
+ commentCount: number;
483
+ hasBim: boolean;
484
+ hasMinimodel: boolean;
485
+ }
486
+ export interface ThreeSixtyWalkGroup {
487
+ date: string;
488
+ walks: ThreeSixtyWalk[];
489
+ }
490
+ export type ThreeSixtyMediaDownloadOption = {
491
+ type: _360AssetType;
492
+ title: string;
493
+ icon: string;
494
+ };
495
+ export type DrawingSelection = {
496
+ pageNumber: number;
497
+ size: number;
498
+ thumbnail: string | null;
499
+ pageCount: number;
500
+ };
501
+ export type CommentCardComment = {
502
+ id?: number | string;
503
+ content?: string;
504
+ createdAt?: string;
505
+ archivedAt?: string;
506
+ creatorName?: string;
507
+ label?: string;
508
+ timestamp?: string;
509
+ cameraExid?: string;
510
+ position3d?: number[];
511
+ canDelete?: boolean;
512
+ };
@@ -0,0 +1,10 @@
1
+ export declare enum CustomDataTableFilterType {
2
+ Select = "SelectSearchFilter",
3
+ Text = "TextFieldSearchFilter"
4
+ }
5
+ export interface CustomDataTableFilterField<T = unknown> {
6
+ component: CustomDataTableFilterType;
7
+ attributes?: Record<string, unknown>;
8
+ customFilter?: (item: T, fieldName: string, search: unknown) => boolean;
9
+ }
10
+ export type CustomDataTableFilterFields<T = unknown> = Record<string, CustomDataTableFilterField<T>>;
@@ -0,0 +1,41 @@
1
+ import type { Timestamp } from "@evercam/shared/types";
2
+ export interface Frame {
3
+ label: string;
4
+ src: string;
5
+ srcSet?: SrcSet;
6
+ timestamp: Timestamp;
7
+ }
8
+ export interface InfoText {
9
+ index: string;
10
+ label: string;
11
+ }
12
+ export type EventMarker<T extends {}> = T & {
13
+ label: string;
14
+ thumbnailUrl: string;
15
+ isActive: boolean;
16
+ markerType?: RecordingsMarker;
17
+ };
18
+ export type SnapshotEvent<T extends {}> = T & {
19
+ eventTime: Timestamp;
20
+ };
21
+ export type MatchedSnapshotEvent<T extends {}> = SnapshotEvent<T> & {
22
+ frameIndex: number;
23
+ snapshotTimestamp: Timestamp;
24
+ };
25
+ export declare enum RecordingsMarker {
26
+ Comment = "comment",
27
+ GateReport = "gate-report",
28
+ Anpr = "anpr",
29
+ Detection = "detection",
30
+ SmartSearch = "smart-search"
31
+ }
32
+ export declare enum ImageQuality {
33
+ ThreeSixty = "360",
34
+ FourEighty = "480",
35
+ SevenTwenty = "720",
36
+ OneZeroEightZero = "1080",
37
+ Auto = "auto"
38
+ }
39
+ export type SrcSet = {
40
+ [q in ImageQuality]: string;
41
+ };
@@ -0,0 +1,7 @@
1
+ export * from "@evercam/api/types";
2
+ export * from "./components";
3
+ export * from "./customDataTableFilters";
4
+ export * from "./imagePlayer";
5
+ export * from "./timeline";
6
+ export * from "./rbac";
7
+ export * from "./observations";
@@ -0,0 +1,25 @@
1
+ export type ObservationsTableHeader = {
2
+ isThumbnail?: boolean;
3
+ visible: boolean;
4
+ divider: boolean;
5
+ sortable: boolean;
6
+ text: string;
7
+ value: string;
8
+ class: string;
9
+ align: string;
10
+ };
11
+ export type ObservationsCountDay = {
12
+ day: string;
13
+ };
14
+ export type ObservationsTableOptionsUpdate = {
15
+ page: number;
16
+ sortBy: string[];
17
+ sortDesc: boolean[];
18
+ };
19
+ export type ObservationsEventsTableState = {
20
+ height: number | string;
21
+ };
22
+ export type ObservationTypeOption = {
23
+ value: string;
24
+ label: string;
25
+ };