@evercam/api 1.0.0-ff3128bbe → 1.0.0-ff34bc64c

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 (74) hide show
  1. package/README.md +1 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +203 -15
  3. package/dist/api/api/adminApi.d.ts +32 -21
  4. package/dist/api/api/aiApi.d.ts +127 -4
  5. package/dist/api/api/authzApi.d.ts +5 -3
  6. package/dist/api/api/evercamApi.d.ts +48 -25
  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 +41 -29
  10. package/dist/api/api/workflowsApi.d.ts +15 -0
  11. package/dist/api/types/360.d.ts +171 -83
  12. package/dist/api/types/admin.d.ts +1 -1
  13. package/dist/api/types/aiConfigs.d.ts +244 -0
  14. package/dist/api/types/analytics.d.ts +49 -33
  15. package/dist/api/types/anpr.d.ts +31 -2
  16. package/dist/api/types/auditLogs.d.ts +19 -4
  17. package/dist/api/types/authz.d.ts +71 -0
  18. package/dist/api/types/automation.d.ts +32 -4
  19. package/dist/api/types/axios.d.ts +10 -9
  20. package/dist/api/types/bim.d.ts +29 -6
  21. package/dist/api/types/camera.d.ts +38 -47
  22. package/dist/api/types/comments.d.ts +16 -7
  23. package/dist/api/types/company.d.ts +1 -2
  24. package/dist/api/types/compare.d.ts +1 -1
  25. package/dist/api/types/connector.d.ts +2 -0
  26. package/dist/api/types/detections.d.ts +3 -10
  27. package/dist/api/types/drone.d.ts +94 -6
  28. package/dist/api/types/errors.d.ts +18 -2
  29. package/dist/api/types/gateReport.d.ts +7 -22
  30. package/dist/api/types/gateReportManagement.d.ts +170 -0
  31. package/dist/api/types/hammertech.d.ts +98 -0
  32. package/dist/api/types/index.d.ts +9 -2
  33. package/dist/api/types/ingest.d.ts +177 -27
  34. package/dist/api/types/kit.d.ts +44 -101
  35. package/dist/api/types/map.d.ts +12 -0
  36. package/dist/api/types/media.d.ts +7 -2
  37. package/dist/api/types/notification.d.ts +52 -2
  38. package/dist/api/types/observationEvents.d.ts +141 -0
  39. package/dist/api/types/observations.d.ts +84 -0
  40. package/dist/api/types/planner.d.ts +56 -10
  41. package/dist/api/types/posthog.d.ts +20 -0
  42. package/dist/api/types/project.d.ts +17 -4
  43. package/dist/api/types/recording.d.ts +8 -13
  44. package/dist/api/types/ring.d.ts +16 -16
  45. package/dist/api/types/roi.d.ts +3 -11
  46. package/dist/api/types/routeParams.d.ts +1 -0
  47. package/dist/api/types/shared.d.ts +24 -22
  48. package/dist/api/types/shares.d.ts +0 -13
  49. package/dist/api/types/siteAnalytics.d.ts +3 -5
  50. package/dist/api/types/siteAnalyticsManagement.d.ts +127 -0
  51. package/dist/api/types/siteView.d.ts +78 -0
  52. package/dist/api/types/snapshots.d.ts +13 -0
  53. package/dist/api/types/socket.d.ts +4 -0
  54. package/dist/api/types/storyblok.d.ts +0 -13
  55. package/dist/api/types/timelapse.d.ts +4 -8
  56. package/dist/api/types/user.d.ts +16 -4
  57. package/dist/api/types/workflows.d.ts +108 -0
  58. package/dist/api/utils.d.ts +1 -1
  59. package/dist/index.js +2169 -915
  60. package/dist/index.js.map +1 -1
  61. package/dist/index.umd.cjs +1 -1
  62. package/dist/index.umd.cjs.map +1 -1
  63. package/dist/shared/types/components.d.ts +247 -49
  64. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  65. package/dist/shared/types/droneUpload.d.ts +66 -0
  66. package/dist/shared/types/imagePlayer.d.ts +8 -1
  67. package/dist/shared/types/index.d.ts +4 -0
  68. package/dist/shared/types/observations.d.ts +25 -0
  69. package/dist/shared/types/report.d.ts +101 -0
  70. package/dist/shared/utils/datePickerValue.d.ts +36 -0
  71. package/dist/shared/utils/datePresets.d.ts +31 -0
  72. package/package.json +4 -2
  73. package/dist/api/types/copilot.d.ts +0 -162
  74. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -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
+ };
@@ -0,0 +1,98 @@
1
+ export declare enum HammertechRegion {
2
+ US = "us",
3
+ AU = "au",
4
+ EU = "eu"
5
+ }
6
+ export type HammertechConnectPayload = {
7
+ email: string;
8
+ password: string;
9
+ tenant: string;
10
+ region: HammertechRegion;
11
+ };
12
+ export type HammertechProject = {
13
+ projectId: string;
14
+ name: string;
15
+ };
16
+ export type HammertechLocation = {
17
+ id: string;
18
+ name: string;
19
+ parentId: string | null;
20
+ };
21
+ export type HammertechCustomFieldDataType = "FreeText" | "TextArea" | "Number" | "Date" | "Time" | "DateTime" | "ExpiryDate" | "Checkbox" | "YesNoRadio" | "YesNoNaRadio" | "Dropdown" | "Radio" | "MultiSelectDropdown" | "ImageUpload" | "FileUpload" | "Signature" | "SignatureWithName" | "Heading" | "BigLabel" | "ExpandingLabel" | "Separator" | "NoMargin" | "Image" | "FileDownload" | "ChildForm" | "SectionStart" | "SectionEnd" | "SystemField" | string;
22
+ export type HammertechCustomField = {
23
+ id: string;
24
+ internalName: string;
25
+ name?: string;
26
+ customFieldType: HammertechCustomFieldDataType;
27
+ isRequired?: boolean;
28
+ answerOptions?: string[];
29
+ };
30
+ export type HammertechCustomFieldForm = {
31
+ id: string;
32
+ customFields: HammertechCustomField[];
33
+ };
34
+ export declare enum HammertechPriority {
35
+ Low = "Low",
36
+ Medium = "Medium",
37
+ High = "High",
38
+ Critical = "Critical"
39
+ }
40
+ export declare enum HammertechClassification {
41
+ Undefined = "Undefined",
42
+ Positive = "Positive",
43
+ Negative = "Negative",
44
+ Neutral = "Neutral"
45
+ }
46
+ export type HammertechIssueType = {
47
+ id: string;
48
+ name: string;
49
+ forcePriority?: boolean;
50
+ suggestedPriority?: HammertechPriority | null;
51
+ canBeNegative?: boolean;
52
+ canBeNeutral?: boolean;
53
+ canBePositive?: boolean;
54
+ openIssueCustomFieldForm?: HammertechCustomFieldForm | null;
55
+ };
56
+ export type HammertechCustomFieldValue = {
57
+ customFieldId: string;
58
+ value?: unknown;
59
+ storedFileId?: string;
60
+ };
61
+ export declare const HAMMERTECH_FILE_FIELD_TYPES: string[];
62
+ export declare function isHammertechFileFieldType(type?: string): boolean;
63
+ export declare function isHammertechSignatureWithName(type?: string): boolean;
64
+ export type HammertechStoredFilePayload = {
65
+ fileName?: string;
66
+ base64FileContent: string;
67
+ annotation?: string;
68
+ id?: string;
69
+ };
70
+ export type HammertechStoredFileResponse = {
71
+ isSuccess: boolean;
72
+ httpStatusCode: number;
73
+ messageText: string;
74
+ createdEntityId: string;
75
+ xRequestId: string;
76
+ };
77
+ export type HammertechFileFieldValue = {
78
+ file: File | null;
79
+ name: string;
80
+ };
81
+ export type HammertechCreateIssuePayload = {
82
+ projectId: string;
83
+ issueTypeId: string;
84
+ snapshot: string;
85
+ issueDate?: string;
86
+ description?: string;
87
+ priority?: HammertechPriority;
88
+ dueDate?: string;
89
+ classification?: HammertechClassification;
90
+ locationId?: string;
91
+ isPositiveObservation?: boolean;
92
+ isPhotoForFixRequired?: boolean;
93
+ openIssueCustomFieldFormId?: string;
94
+ openIssueCustomFieldValues?: HammertechCustomFieldValue[];
95
+ };
96
+ export type HammertechIssueResponse = {
97
+ id: string;
98
+ };
@@ -8,7 +8,6 @@ export * from "./autodesk";
8
8
  export * from "./bim";
9
9
  export * from "./camera";
10
10
  export * from "./compare";
11
- export * from "./copilot";
12
11
  export * from "./credentials";
13
12
  export * from "./drone";
14
13
  export * from "./errors";
@@ -36,12 +35,13 @@ export * from "./storyblok";
36
35
  export * from "./time";
37
36
  export * from "./timelapse";
38
37
  export * from "./user";
39
- export * from "./vendorModel";
40
38
  export * from "./videoWall";
41
39
  export * from "./voyageControl";
40
+ export * from "./hammertech";
42
41
  export * from "./weather";
43
42
  export * from "./comments";
44
43
  export * from "./detections";
44
+ export * from "./observations";
45
45
  export * from "./axios";
46
46
  export * from "./shared";
47
47
  export * from "./company";
@@ -49,6 +49,7 @@ export * from "./kit";
49
49
  export * from "./auditLogs";
50
50
  export * from "./snapshots";
51
51
  export * from "./siteAnalytics";
52
+ export * from "./siteAnalyticsManagement";
52
53
  export * from "./widget";
53
54
  export * from "./countries";
54
55
  export * from "./automation";
@@ -62,3 +63,9 @@ export * from "./authz";
62
63
  export * from "./oauth";
63
64
  export * from "./ring";
64
65
  export * from "./smartSeach";
66
+ export * from "./siteView";
67
+ export * from "./aiConfigs";
68
+ export * from "./gateReportManagement";
69
+ export * from "./socket";
70
+ export * from "./workflows";
71
+ export * from "./observationEvents";
@@ -1,4 +1,4 @@
1
- import { PaginationParams, DateType, JsonValue } from "@evercam/api/types";
1
+ import { PaginationParams, DateType, JsonValue, TuplePoint2D } from "@evercam/api/types";
2
2
  import type { _360FloorV2, _360WalkV2 } from "@evercam/api/types/360";
3
3
  export declare enum IngestProcessingStatus {
4
4
  Completed = "completed",
@@ -8,7 +8,8 @@ export declare enum IngestProcessingStatus {
8
8
  Aborted = "aborted",
9
9
  Paused = "paused",
10
10
  InProgress = "inprogress",
11
- Pending = "pending"
11
+ Pending = "pending",
12
+ Downloading = "downloading"
12
13
  }
13
14
  export declare enum MobileAssetsType {
14
15
  Audio = "mobile_audios",
@@ -27,8 +28,6 @@ export declare enum IngestTypes {
27
28
  }
28
29
  export type DronesQueryParams = Omit<PaginationParams, "sort"> & {
29
30
  projectId: string;
30
- consumed: string;
31
- token: string;
32
31
  processingStatus: IngestProcessingStatus;
33
32
  };
34
33
  export type IngestPaginatedResponse<T> = {
@@ -38,56 +37,207 @@ export type IngestPaginatedResponse<T> = {
38
37
  total: number;
39
38
  pageCount?: number;
40
39
  };
40
+ export declare enum IngestProcessingStepStatus {
41
+ Running = "running",
42
+ Completed = "completed",
43
+ Failed = "failed",
44
+ Skipped = "skipped"
45
+ }
46
+ export declare enum IngestProcessingRunStatus {
47
+ Processing = "processing",
48
+ Completed = "completed",
49
+ Failed = "failed"
50
+ }
51
+ export type IngestProcessingMetricStat = {
52
+ avg?: number;
53
+ peak?: number;
54
+ };
55
+ export type IngestProcessingStepMetrics = {
56
+ cpu?: IngestProcessingMetricStat;
57
+ ram?: IngestProcessingMetricStat;
58
+ gpuUtil?: IngestProcessingMetricStat;
59
+ gpuMemDevice?: IngestProcessingMetricStat;
60
+ gpuMemStep?: IngestProcessingMetricStat;
61
+ ramTotalMb?: number;
62
+ diskTotalMb?: number;
63
+ };
64
+ export type IngestProcessingStepDetail = {
65
+ input?: Record<string, JsonValue>;
66
+ params?: Record<string, JsonValue>;
67
+ output?: Record<string, JsonValue>;
68
+ metrics?: IngestProcessingStepMetrics;
69
+ error?: string;
70
+ };
71
+ export type IngestProcessingStep = {
72
+ name: string;
73
+ tool?: string;
74
+ status: IngestProcessingStepStatus | string;
75
+ startedAt?: string;
76
+ endedAt?: string;
77
+ durationSec?: number;
78
+ durationPct?: number;
79
+ detail?: IngestProcessingStepDetail;
80
+ };
81
+ export type IngestProcessingDiskUsage = {
82
+ sourceMb?: number;
83
+ framesMb?: number;
84
+ resultMb?: number;
85
+ totalMb?: number;
86
+ };
87
+ export type IngestProcessingPeakUsage = {
88
+ cpu?: number;
89
+ ram?: number;
90
+ gpuUtil?: number;
91
+ gpuMemDevice?: number;
92
+ gpuMemStep?: number;
93
+ };
94
+ export type IngestProcessingFootprint = {
95
+ disk?: IngestProcessingDiskUsage;
96
+ peak?: IngestProcessingPeakUsage;
97
+ };
98
+ export type IngestProcessingProgress = {
99
+ available: boolean;
100
+ status?: IngestProcessingRunStatus | string;
101
+ processingStatus?: IngestProcessingStatus | string;
102
+ currentStep?: string | null;
103
+ error?: string | null;
104
+ startedAt?: string;
105
+ steps: IngestProcessingStep[];
106
+ footprint?: IngestProcessingFootprint;
107
+ };
108
+ export type IngestTrackedAsset = {
109
+ id: number;
110
+ projectId: string;
111
+ name?: string;
112
+ processingStatus?: IngestProcessingStatus | string;
113
+ };
41
114
  export type DroneUploadItem = {
42
115
  id: number;
43
116
  projectId: string;
44
- consumed: boolean;
45
- token: string;
46
117
  flightDate: string;
47
118
  flightGeolocation: string;
48
119
  modelZip: string;
49
120
  orthomosaicZip: string;
50
121
  reportPdf: string;
122
+ processingLog: string;
51
123
  uploadedBy: string;
52
124
  processingStatus: IngestProcessingStatus | string;
53
125
  modelCesiumAssetId: string;
54
126
  updatedAt: string;
55
- hasTusLinks: boolean;
127
+ canDelete: boolean;
128
+ canReprocess: boolean;
129
+ hasSteps: boolean;
130
+ aerialShotsCount: number;
56
131
  };
57
132
  export type DroneUploadsResponse = IngestPaginatedResponse<DroneUploadItem>;
58
133
  export type DroneQueueResponse = {
59
134
  size: number;
60
135
  assetsDrone: DroneUploadItem[];
61
136
  };
62
- export type DroneUploadUpdateRequestPayload = {
63
- flightMetadata: {
64
- dateTime: string;
65
- gpsAltitude: string;
66
- gpsCoordinates: string;
67
- };
68
- upload: {
69
- url: string;
70
- title: string;
71
- fileExtension: string;
72
- }[];
73
- aerialShots: {
74
- url: string;
75
- title: string;
76
- fileExtension: string;
77
- gpsLatitude: string;
78
- gpsLongitude: string;
79
- gpsAltitude: string;
137
+ export type DroneFlightMetadata = {
138
+ dateTime: string;
139
+ gpsAltitude: string;
140
+ gpsCoordinates: string;
141
+ };
142
+ export type DroneFileAllocation = {
143
+ filename: string;
144
+ contentType: string;
145
+ };
146
+ export declare enum UploadFileStatus {
147
+ Allocated = "allocated",
148
+ Acknowledged = "acknowledged"
149
+ }
150
+ export type DroneFileState = DroneFileAllocation & {
151
+ status: UploadFileStatus;
152
+ uploadUrl?: string;
153
+ };
154
+ export type DroneFileError = {
155
+ filename?: string;
156
+ id?: number;
157
+ code: string;
158
+ detail: string;
159
+ retryable: boolean;
160
+ };
161
+ export type DroneFileStates = {
162
+ files: DroneFileState[];
163
+ errors: DroneFileError[];
164
+ nextCursor?: string | null;
165
+ };
166
+ export type DroneCompletion = DroneFileStates & {
167
+ processingId: number;
168
+ processingStatus: IngestProcessingStatus;
169
+ };
170
+ export type DroneReprocessResponse = Pick<DroneCompletion, "processingId" | "processingStatus">;
171
+ export type AerialAllocation = DroneFileAllocation & {
172
+ gpsLatitude: string;
173
+ gpsLongitude: string;
174
+ gpsAltitude: string;
175
+ };
176
+ export type AerialUploadState = AerialAllocation & {
177
+ id: number;
178
+ status: UploadFileStatus;
179
+ processingStatus: IngestProcessingStatus;
180
+ uploadUrl?: string;
181
+ fileLink?: string;
182
+ thumbnailLink?: string;
183
+ };
184
+ export type AerialUploadStates = {
185
+ aerialShots: AerialUploadState[];
186
+ errors: DroneFileError[];
187
+ nextCursor?: string | null;
188
+ complete: boolean;
189
+ };
190
+ export type AerialShotState = {
191
+ id: number;
192
+ filename?: string | null;
193
+ status?: UploadFileStatus | null;
194
+ contentType?: string | null;
195
+ processingStatus?: AerialUploadState["processingStatus"] | null;
196
+ gpsLatitude: string;
197
+ gpsLongitude: string;
198
+ gpsAltitude: string;
199
+ fileLink?: string | null;
200
+ thumbnailLink?: string | null;
201
+ };
202
+ export type AerialShotPage = Omit<AerialUploadStates, "aerialShots"> & {
203
+ aerialShots: AerialShotState[];
204
+ };
205
+ export type DroneCreation = {
206
+ projectId: string;
207
+ flightMetadata: DroneFlightMetadata;
208
+ aerialShots?: AerialAllocation[];
209
+ };
210
+ export type DroneCreated = {
211
+ id: number;
212
+ projectId: string;
213
+ processingStatus: IngestProcessingStatus;
214
+ aerialShots: AerialUploadState[];
215
+ errors: DroneFileError[];
216
+ };
217
+ export type DroneDeletion = {
218
+ deleted: {
219
+ filename: string;
220
+ id?: number;
80
221
  }[];
81
- projectName: string;
222
+ errors: DroneFileError[];
82
223
  };
83
224
  export type CalculateMeasuringOperationRequestPayload = {
84
225
  date: DateType;
85
- points: [number, number][];
226
+ points: TuplePoint2D[];
86
227
  operation: string;
87
228
  };
88
229
  export type FlightImagesQueryParams = Partial<Omit<PaginationParams, "sort">> & {
89
230
  date: DateType;
90
231
  };
232
+ export type AerialShotItem = {
233
+ id: number;
234
+ droneUploadId: number;
235
+ fileLink: string;
236
+ thumbnailLink: string;
237
+ gpsLatitude: string;
238
+ gpsLongitude: string;
239
+ gpsAltitude: string;
240
+ };
91
241
  export type InspectionToolRequestPayload = {
92
242
  date: DateType;
93
243
  gpsAltitude: string;