@evercam/api 1.0.0-83566a548 → 1.0.0-882ca0356

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 (55) hide show
  1. package/README.md +1 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +164 -15
  3. package/dist/api/api/adminApi.d.ts +38 -13
  4. package/dist/api/api/aiApi.d.ts +38 -5
  5. package/dist/api/api/authzApi.d.ts +1 -2
  6. package/dist/api/api/evercamApi.d.ts +59 -8
  7. package/dist/api/api/evercamLabsApi.d.ts +1 -2
  8. package/dist/api/api/ingestApi.d.ts +51 -43
  9. package/dist/api/types/360.d.ts +67 -51
  10. package/dist/api/types/aiConfigs.d.ts +154 -0
  11. package/dist/api/types/analytics.d.ts +86 -49
  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 +1 -0
  15. package/dist/api/types/axios.d.ts +9 -8
  16. package/dist/api/types/bim.d.ts +25 -0
  17. package/dist/api/types/camera.d.ts +20 -27
  18. package/dist/api/types/comments.d.ts +8 -6
  19. package/dist/api/types/connector.d.ts +2 -0
  20. package/dist/api/types/copilot.d.ts +10 -5
  21. package/dist/api/types/detections.d.ts +5 -10
  22. package/dist/api/types/drone.d.ts +96 -6
  23. package/dist/api/types/errors.d.ts +11 -0
  24. package/dist/api/types/gateReport.d.ts +7 -11
  25. package/dist/api/types/gateReportManagement.d.ts +175 -0
  26. package/dist/api/types/index.d.ts +6 -1
  27. package/dist/api/types/ingest.d.ts +17 -3
  28. package/dist/api/types/kit.d.ts +2 -1
  29. package/dist/api/types/map.d.ts +12 -0
  30. package/dist/api/types/media.d.ts +7 -1
  31. package/dist/api/types/oauth.d.ts +62 -0
  32. package/dist/api/types/planner.d.ts +97 -0
  33. package/dist/api/types/project.d.ts +10 -5
  34. package/dist/api/types/recording.d.ts +6 -9
  35. package/dist/api/types/ring.d.ts +53 -0
  36. package/dist/api/types/roi.d.ts +4 -3
  37. package/dist/api/types/shared.d.ts +19 -0
  38. package/dist/api/types/siteAnalytics.d.ts +3 -3
  39. package/dist/api/types/siteView.d.ts +73 -0
  40. package/dist/api/types/snapshots.d.ts +48 -3
  41. package/dist/api/types/storageProvider.d.ts +19 -0
  42. package/dist/api/types/timelapse.d.ts +6 -2
  43. package/dist/api/types/user.d.ts +1 -2
  44. package/dist/api/utils.d.ts +0 -1
  45. package/dist/index.js +1711 -936
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.umd.cjs +1 -1
  48. package/dist/index.umd.cjs.map +1 -1
  49. package/dist/shared/types/components.d.ts +68 -9
  50. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  51. package/dist/shared/types/imagePlayer.d.ts +8 -1
  52. package/dist/shared/types/index.d.ts +2 -0
  53. package/dist/shared/types/rbac.d.ts +67 -0
  54. package/package.json +4 -2
  55. package/dist/api/types/storageServers.d.ts +0 -4
@@ -1,17 +1,107 @@
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;
13
+ cesiumGausianSplatId: string;
6
14
  pointSize: string;
7
- maximumScreenSpaceError: string;
15
+ maximumScreenSpaceError: number;
8
16
  link: string;
9
17
  trueIndex: number;
10
18
  };
11
- export type DroneProjectJsonResponse = {
12
- models: DroneModel[];
13
- [key: string]: any;
19
+ export type DroneProjectTransform = {
20
+ initialCameraTransform?: DroneCameraTransform;
21
+ initial2DCameraTransform?: DroneCameraTransform;
22
+ blackListIds?: string;
23
+ markers?: Record<string, DroneMarker>;
24
+ imageryPlans?: Record<string, DroneImageryPlan>;
25
+ bimData?: DroneBimData;
26
+ terrainPoints?: Record<string, Point3D[]>;
27
+ projectWGS84Coordinates?: DroneProjectCoordinates | null;
28
+ tags?: Record<string, DroneTag>;
29
+ };
30
+ export type DroneProjectData = {
31
+ models?: DroneModel[];
32
+ transform?: DroneProjectTransform;
33
+ integrationType?: DroneProvider;
34
+ origin?: string;
35
+ params?: string;
36
+ pointSize?: number;
37
+ };
38
+ export type DroneProjectDataPatch = {
39
+ models?: Record<number, Partial<DroneModel>>;
40
+ integrationType?: DroneProvider;
41
+ origin?: string;
42
+ params?: string;
43
+ };
44
+ export type DroneProjectCoordinates = {
45
+ lat: number | null;
46
+ lon: number | null;
47
+ alt: number | null;
48
+ };
49
+ export type DroneTransformPatch = {
50
+ projectWGS84Coordinates?: DroneProjectCoordinates | null;
51
+ };
52
+ export declare enum DroneTagType {
53
+ AerialShot = "AerialShot"
54
+ }
55
+ export type DroneTag<T extends DroneTagType = DroneTagType> = {
56
+ id?: number;
57
+ type: T;
58
+ comment: string;
59
+ position?: Point3D;
60
+ cameraTransform?: DroneCameraTransform;
61
+ creationDate: string;
62
+ hyperlink?: string;
63
+ height?: number;
64
+ };
65
+ export type AerialShotPoint = DroneTag<DroneTagType.AerialShot>;
66
+ export type DroneMarkerTransform = {
67
+ fovAngle: number;
68
+ fovRadius: number;
69
+ heading: number;
70
+ height: number;
71
+ latitude: string;
72
+ longitude: string;
73
+ pitch: number;
74
+ roll: number;
75
+ scale: number;
76
+ };
77
+ export declare enum DroneMarkerType {
78
+ Default = "Default",
79
+ Gate = "Gate",
80
+ Indoor = "Indoor"
81
+ }
82
+ export type DroneMarker = {
83
+ type: DroneMarkerType;
84
+ name: string;
85
+ cameraExid: string;
86
+ transform: DroneMarkerTransform;
87
+ };
88
+ export type DroneImageryPlan = {
89
+ cesiumId: number;
90
+ uuid: string;
91
+ name: string;
92
+ alpha: number;
93
+ order: number;
94
+ };
95
+ export type DroneBimData = {
96
+ cesiumId: string | null;
97
+ iModelId: string | null;
98
+ changeSetId: string | null;
99
+ isItwin: boolean;
14
100
  };
15
101
  export declare enum DroneUrlParams {
16
102
  Date = "date"
17
103
  }
104
+ export declare enum DroneProvider {
105
+ Evercam = "Evercam",
106
+ DroneDeploy = "DroneDeploy"
107
+ }
@@ -46,4 +46,15 @@ type _EvercamApiError = {
46
46
  innerError?: _EvercamApiError;
47
47
  };
48
48
  export type EvercamApiError = AxiosError<_EvercamApiError>;
49
+ export type AppError = {
50
+ statusCode?: number;
51
+ message?: string;
52
+ redirect?: {
53
+ url?: string;
54
+ label?: string;
55
+ delay?: number;
56
+ };
57
+ withSupportMessage?: boolean;
58
+ isWidget?: boolean;
59
+ };
49
60
  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",
@@ -249,6 +249,7 @@ export type AnprExportBaseParams = {
249
249
  toDate?: string;
250
250
  camerasExid?: CameraExid[];
251
251
  isPublic?: boolean;
252
+ columns?: string[];
252
253
  };
253
254
  export type EventsExportRequestParameters = AnprExportBaseParams & {
254
255
  eventType: GateReportEventType;
@@ -259,23 +260,19 @@ export type AnprBasedGateReportExportRequestParams = AnprExportBaseParams & {
259
260
  export type LegacyAnprExportParams = AnprExportBaseParams & {
260
261
  direction?: AnprDirection;
261
262
  };
262
- type X1 = number;
263
- type Y1 = number;
264
- type X2 = number;
265
- type Y2 = number;
266
263
  export type GateReportROIShape = {
267
- coordinates: [[X1, Y1], [X2, Y2]];
264
+ coordinates: TuplePoint2D[];
268
265
  type: RoiShapeType;
269
266
  };
270
267
  export type GateReportROI = {
271
268
  cameraex?: string;
272
269
  fromDate?: string;
273
- directionFilter?: string;
270
+ directionFilter?: RoiDirection;
274
271
  id?: number;
275
272
  insertedAt?: Timestamp;
276
273
  isActive?: boolean;
277
274
  name?: string;
278
- roiType?: string;
275
+ roiType?: RoiType;
279
276
  updatedAt?: Timestamp;
280
277
  shapes?: GateReportROIShape[];
281
278
  };
@@ -318,7 +315,7 @@ export type RoisQueryParams = {
318
315
  id: number;
319
316
  name: string;
320
317
  fromDate: string;
321
- roiType: RoiShapeType;
318
+ roiType: RoiType;
322
319
  isActive: boolean;
323
320
  directionFilter: string;
324
321
  sort: string;
@@ -327,11 +324,10 @@ export type GateReportRoiRequestPayload = {
327
324
  id: number;
328
325
  cameraExid: string;
329
326
  name: string;
330
- roiType: string;
327
+ roiType: RoiType;
331
328
  isActive: true;
332
329
  fromDate: string;
333
330
  shapes: GateReportROIShape[];
334
331
  directionFilter: string;
335
332
  note: string;
336
333
  };
337
- export {};
@@ -0,0 +1,175 @@
1
+ import { CameraExid, DateType, 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 GateReportManagementListParams = {
134
+ projectExid?: ProjectExid;
135
+ includeStatus?: boolean;
136
+ page?: number;
137
+ limit?: number;
138
+ };
139
+ export type CoolifyProjectOption = {
140
+ uuid: string;
141
+ name: string;
142
+ description: string | null;
143
+ };
144
+ export type CoolifyServerOption = {
145
+ uuid: string;
146
+ name: string;
147
+ isReachable: boolean;
148
+ isUsable: boolean;
149
+ };
150
+ export declare enum AppRuntimeState {
151
+ Running = "running",
152
+ Stopped = "stopped",
153
+ Restarting = "restarting"
154
+ }
155
+ export type AppRuntimeStateRequest = {
156
+ state: AppRuntimeState;
157
+ };
158
+ export type AppActionResponse = {
159
+ success: boolean;
160
+ message: string | null;
161
+ appUuid: string | null;
162
+ state: AppRuntimeState | null;
163
+ };
164
+ export type APIEnvelope<T> = {
165
+ success: boolean;
166
+ data: T | null;
167
+ message: string;
168
+ };
169
+ export type CreateGateReportAppResponse = {
170
+ created: boolean;
171
+ id: number | null;
172
+ data: GateReportManagedApp | null;
173
+ count: number | null;
174
+ message: string;
175
+ };
@@ -30,7 +30,7 @@ export * from "./shares";
30
30
  export * from "./sim";
31
31
  export * from "./systemCheck";
32
32
  export * from "./planner";
33
- export * from "./storageServers";
33
+ export * from "./storageProvider";
34
34
  export * from "./streaming";
35
35
  export * from "./storyblok";
36
36
  export * from "./time";
@@ -59,4 +59,9 @@ export * from "./xweather";
59
59
  export * from "./posthog";
60
60
  export * from "./recycleBin";
61
61
  export * from "./authz";
62
+ export * from "./oauth";
63
+ export * from "./ring";
62
64
  export * from "./smartSeach";
65
+ export * from "./siteView";
66
+ export * from "./aiConfigs";
67
+ export * from "./gateReportManagement";
@@ -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",
@@ -18,7 +18,12 @@ export declare enum IngestVersions {
18
18
  V1 = "v1",
19
19
  V2 = "v2",
20
20
  V3 = "v3",
21
- V4 = "v4"
21
+ V4 = "v4",
22
+ V5 = "v5"
23
+ }
24
+ export declare enum IngestTypes {
25
+ Drone = "drone",
26
+ ThreeSixty = "360"
22
27
  }
23
28
  export type DronesQueryParams = Omit<PaginationParams, "sort"> & {
24
29
  projectId: string;
@@ -43,6 +48,7 @@ export type DroneUploadItem = {
43
48
  modelZip: string;
44
49
  orthomosaicZip: string;
45
50
  reportPdf: string;
51
+ processingLog: string;
46
52
  uploadedBy: string;
47
53
  processingStatus: IngestProcessingStatus | string;
48
54
  modelCesiumAssetId: string;
@@ -65,11 +71,19 @@ export type DroneUploadUpdateRequestPayload = {
65
71
  title: string;
66
72
  fileExtension: string;
67
73
  }[];
74
+ aerialShots: {
75
+ url: string;
76
+ title: string;
77
+ fileExtension: string;
78
+ gpsLatitude: string;
79
+ gpsLongitude: string;
80
+ gpsAltitude: string;
81
+ }[];
68
82
  projectName: string;
69
83
  };
70
84
  export type CalculateMeasuringOperationRequestPayload = {
71
85
  date: DateType;
72
- points: [number, number][];
86
+ points: TuplePoint2D[];
73
87
  operation: string;
74
88
  };
75
89
  export type FlightImagesQueryParams = Partial<Omit<PaginationParams, "sort">> & {
@@ -45,7 +45,8 @@ export declare enum KitAlarm {
45
45
  NoHdd = "no_hdd",
46
46
  MissingRouterInfo = "missing_router_info",
47
47
  AcFailure = "ac_failure",
48
- LowBattery = "low_battery"
48
+ LowBattery = "low_battery",
49
+ GeneratorOff = "generator_off"
49
50
  }
50
51
  export declare enum KitMetricId {
51
52
  SolarCharger = "solar_charger",
@@ -2,3 +2,15 @@ export declare enum MapType {
2
2
  Hybrid = "hybrid",
3
3
  Terrain = "terrain"
4
4
  }
5
+ export type MapView = {
6
+ east?: number;
7
+ floorID?: string;
8
+ image?: string;
9
+ mapStyle?: MapType;
10
+ name: string;
11
+ north?: number;
12
+ projectId: string;
13
+ projectName: string;
14
+ south?: number;
15
+ west?: number;
16
+ };
@@ -25,6 +25,7 @@ export type Media = {
25
25
  projectExid?: string;
26
26
  thumbnailUrl?: string;
27
27
  mediaUrl?: string;
28
+ camera?: string;
28
29
  };
29
30
  export declare enum MediaType {
30
31
  EditedImage = "edit",
@@ -92,7 +93,7 @@ export type MediaCreateRequestPayload = {
92
93
  cameraExid?: string;
93
94
  requestedBy?: string;
94
95
  notes?: string;
95
- category?: ClipsCategory;
96
+ category?: MediaCategory | ClipsCategory;
96
97
  isUrgent?: boolean;
97
98
  storeAsType?: MediaType;
98
99
  };
@@ -107,6 +108,11 @@ export declare enum ClipsCategory {
107
108
  Marketing = "marketing",
108
109
  BestPracticies = "best_practices"
109
110
  }
111
+ export declare enum MediaCategory {
112
+ Weather = "weather",
113
+ SmartSearch = "smart_search",
114
+ Copilot = "copilot"
115
+ }
110
116
  export type MediaDeleteRequestPayload = {
111
117
  timelapseIds: (string | number)[];
112
118
  compareIds: (string | number)[];
@@ -0,0 +1,62 @@
1
+ export type OAuthClient = {
2
+ id: number;
3
+ name: string;
4
+ clientId: string;
5
+ redirectUris: string[];
6
+ logoUrl: string | null;
7
+ scopes: string[];
8
+ active: boolean;
9
+ description: string | null;
10
+ owner: {
11
+ id: number;
12
+ name: string;
13
+ email: string;
14
+ } | null;
15
+ createdAt: string;
16
+ updatedAt: string;
17
+ };
18
+ export type OAuthClientWithSecret = OAuthClient & {
19
+ clientSecret: string;
20
+ };
21
+ export type CreateOAuthClientPayload = {
22
+ name: string;
23
+ redirectUris: string[];
24
+ scopes?: string[];
25
+ description?: string;
26
+ logoUrl?: string;
27
+ };
28
+ export type AdminCreateOAuthClientPayload = CreateOAuthClientPayload & {
29
+ clientId?: string;
30
+ clientSecret?: string;
31
+ };
32
+ export type UpdateOAuthClientPayload = {
33
+ name?: string;
34
+ redirectUris?: string[];
35
+ scopes?: string[];
36
+ description?: string;
37
+ logoUrl?: string;
38
+ active?: boolean;
39
+ };
40
+ export type OAuthScopeDetail = {
41
+ scope: string;
42
+ description: string;
43
+ group: string;
44
+ };
45
+ export type OAuthConsentInfo = {
46
+ client: {
47
+ name: string;
48
+ logoUrl: string | null;
49
+ description: string | null;
50
+ };
51
+ scopes: OAuthScopeDetail[];
52
+ };
53
+ export type OAuthConsentPayload = {
54
+ clientId: string;
55
+ scope: string;
56
+ redirectUri: string;
57
+ state: string;
58
+ decision: "allow" | "deny";
59
+ };
60
+ export type OAuthConsentResponse = {
61
+ redirectUrl: string;
62
+ };
@@ -1,3 +1,33 @@
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
33
  Lock = "lock",
@@ -33,3 +63,70 @@ export declare enum ERoles {
33
63
  Admin = "admin",
34
64
  User = "user"
35
65
  }
66
+ export type PlannerOverlay = {
67
+ imageUrl?: string;
68
+ corners?: {
69
+ topLeft: GeoPoint;
70
+ topRight: GeoPoint;
71
+ bottomLeft: GeoPoint;
72
+ bottomRight: GeoPoint;
73
+ } | null;
74
+ };
75
+ export type PlannerCameraMarker = {
76
+ name?: string;
77
+ location?: GeoPoint;
78
+ heading?: number;
79
+ fovAngle?: number;
80
+ fovRadius?: number;
81
+ isVisible?: boolean;
82
+ color?: string;
83
+ };
84
+ export type SitePlanBounds = {
85
+ northEast: GeoPoint;
86
+ southWest: GeoPoint;
87
+ };
88
+ export type SitePlan = {
89
+ id?: string;
90
+ projectId?: string;
91
+ owner?: string;
92
+ lastUpdatedBy?: string;
93
+ projectName?: string;
94
+ projectLocation?: string;
95
+ projectMapType?: EMapTypes;
96
+ projectBounds?: SitePlanBounds;
97
+ overlay?: PlannerOverlay;
98
+ markers?: PlannerCameraMarker[];
99
+ thumbnailUrl?: string;
100
+ createdDate?: string;
101
+ updatedDate?: string;
102
+ };
103
+ export interface IDrawControl {
104
+ _toolbars: {
105
+ draw: {
106
+ _activeMode: {
107
+ handler: {
108
+ disable(): void;
109
+ completeShape(): void;
110
+ };
111
+ };
112
+ _modes: {
113
+ polygon: {
114
+ handler: {
115
+ enable(): void;
116
+ };
117
+ };
118
+ };
119
+ };
120
+ edit: {
121
+ _modes: {
122
+ edit: {
123
+ handler: {
124
+ enable(): void;
125
+ disable(): void;
126
+ save(): void;
127
+ };
128
+ };
129
+ };
130
+ };
131
+ };
132
+ }