@evercam/api 1.0.0-06beade51 → 1.0.0-07cc45493

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 (57) 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 +47 -5
  5. package/dist/api/api/authzApi.d.ts +1 -2
  6. package/dist/api/api/evercamApi.d.ts +60 -9
  7. package/dist/api/api/evercamLabsApi.d.ts +5 -6
  8. package/dist/api/api/ingestApi.d.ts +51 -44
  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 +10 -7
  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 +7 -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/posthog.d.ts +20 -0
  34. package/dist/api/types/project.d.ts +10 -5
  35. package/dist/api/types/recording.d.ts +6 -9
  36. package/dist/api/types/ring.d.ts +53 -0
  37. package/dist/api/types/roi.d.ts +4 -3
  38. package/dist/api/types/shared.d.ts +19 -0
  39. package/dist/api/types/siteAnalytics.d.ts +3 -3
  40. package/dist/api/types/siteAnalyticsManagement.d.ts +92 -0
  41. package/dist/api/types/siteView.d.ts +73 -0
  42. package/dist/api/types/snapshots.d.ts +48 -3
  43. package/dist/api/types/storageProvider.d.ts +19 -0
  44. package/dist/api/types/timelapse.d.ts +6 -2
  45. package/dist/api/types/user.d.ts +1 -2
  46. package/dist/api/utils.d.ts +0 -1
  47. package/dist/index.js +1753 -938
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.umd.cjs +1 -1
  50. package/dist/index.umd.cjs.map +1 -1
  51. package/dist/shared/types/components.d.ts +68 -9
  52. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  53. package/dist/shared/types/imagePlayer.d.ts +8 -1
  54. package/dist/shared/types/index.d.ts +2 -0
  55. package/dist/shared/types/rbac.d.ts +67 -0
  56. package/package.json +4 -2
  57. package/dist/api/types/storageServers.d.ts +0 -4
@@ -1,8 +1,8 @@
1
1
  import type { AxiosRequestConfig } from "axios";
2
2
  import type { SwrRequestConfig } from "@evercam/api/types";
3
3
  import type { _360AssetsQueryParams, _360AssetsRequestPayload, _360QueueQueryParams, _360AssetsUploadPayload, _360AssetsResponse, _360AssetsCountsResponse, _360QueueResponse, _360FloorsResponse, DroneQueueResponse, DroneUploadsResponse, IngestUploadInitResponse, BimUploadsResponse, MobileAssetsQueryParams, MobileCaptureAssetsResponse, BimUploadPayload, BimUploadsQueryParams, CalculateMeasuringOperationRequestPayload, DrawingsRequestPayload, DronesQueryParams, DroneUploadUpdateRequestPayload, FlightImagesQueryParams, Generate360MapRequestPayload, GenerateFloorPayload, InspectionToolRequestPayload, JsonObject, _360WalkV2, _360FloorV2 } from "@evercam/api/types";
4
- import { IngestVersions } from "@evercam/api/types";
5
- export declare const getIngestApiUrl: (version: string) => string | undefined | null;
4
+ import { IngestVersions, IngestTypes } from "@evercam/api/types";
5
+ export declare const getIngestApiUrls: (type: string) => string[];
6
6
  export declare const IngestApi: {
7
7
  drone: {
8
8
  createUpload(projectId: string, params: {
@@ -27,51 +27,52 @@ export declare const IngestApi: {
27
27
  verifyToken(projectId: string, params: {
28
28
  token: string;
29
29
  }): Promise<JsonObject>;
30
- calculateMeasuringOperation(projectId: string, params: CalculateMeasuringOperationRequestPayload): Promise<JsonObject>;
30
+ calculateMeasuringOperation(projectId: string, params: CalculateMeasuringOperationRequestPayload, ingestUrl?: string): Promise<JsonObject>;
31
31
  inspectionTool(projectId: string, params: InspectionToolRequestPayload): Promise<JsonObject>;
32
32
  isInspectionEnabled(projectId: string, params?: JsonObject): Promise<JsonObject>;
33
- getDroneQueueSize(version?: IngestVersions): Promise<DroneQueueResponse>;
33
+ getDroneQueueSize(droneUrl: string): Promise<DroneQueueResponse>;
34
34
  getFlightImages(projectId: string, params: FlightImagesQueryParams): Promise<JsonObject>;
35
35
  checkFlightAvailableFeatures(projectId: string, params: JsonObject): Promise<JsonObject>;
36
36
  };
37
37
  assets360: {
38
38
  get360Assets(params: {
39
39
  params: Partial<_360AssetsQueryParams>;
40
- }, version?: IngestVersions): Promise<_360AssetsResponse>;
40
+ }): Promise<_360AssetsResponse>;
41
41
  get360AssetsCounts(projectId: string, params: {
42
42
  uploadedBy: string;
43
- }, version?: IngestVersions): Promise<_360AssetsCountsResponse>;
43
+ }): Promise<_360AssetsCountsResponse>;
44
44
  get360AssetLink(projectId: string, date: string, floor: string, assetType: string, drawingId: string, marker: string | null): Promise<string>;
45
- update360(id: number, payload: _360AssetsRequestPayload, version?: IngestVersions): Promise<_360WalkV2>;
46
- update360ByProjectDateName(projectId: string, date: string, floor: string, payload: _360AssetsRequestPayload, version?: IngestVersions): Promise<_360WalkV2>;
47
- deleteUpload(id: number, version?: IngestVersions): Promise<void>;
45
+ update360(id: number, payload: _360AssetsRequestPayload): Promise<_360WalkV2>;
46
+ update360ByProjectDateName(projectId: string, date: string, floor: string, payload: _360AssetsRequestPayload): Promise<_360WalkV2>;
47
+ deleteUpload(id: number): Promise<void>;
48
48
  getArchive(id: number, params: {
49
49
  dateType: string;
50
- }, version?: IngestVersions): Promise<Blob>;
51
- createUpload(projectId: string, params: _360AssetsRequestPayload, version?: IngestVersions): Promise<IngestUploadInitResponse>;
52
- upload(id: number, params: JsonObject, payload: _360AssetsUploadPayload, version?: IngestVersions): Promise<_360WalkV2>;
53
- reprocess360(id: number, version?: IngestVersions): Promise<void>;
50
+ }): Promise<Blob>;
51
+ createUpload(projectId: string, params: _360AssetsRequestPayload): Promise<IngestUploadInitResponse>;
52
+ upload(id: number, params: JsonObject, payload: _360AssetsUploadPayload): Promise<_360WalkV2>;
53
+ reprocess360(id: number): Promise<void>;
54
54
  drawingExists(payload: {
55
55
  params: {
56
56
  name: string;
57
57
  project_id: string;
58
58
  };
59
- }, version?: IngestVersions): Promise<JsonObject>;
59
+ }): Promise<JsonObject>;
60
60
  getDrawings(payload: {
61
61
  params: DrawingsRequestPayload;
62
62
  config?: SwrRequestConfig<_360FloorsResponse>;
63
- }, version?: IngestVersions): Promise<_360FloorsResponse>;
64
- getDrawingById(id: number, projectExid: string, version?: IngestVersions): Promise<_360FloorV2>;
65
- updateDrawing(id: number, projectExid: string, payload: GenerateFloorPayload, version?: IngestVersions): Promise<_360FloorV2>;
66
- deleteDrawing(id: number, version?: IngestVersions): Promise<void>;
67
- transferWalks(sourceId: number, targetId: number, projectExid: string, version?: IngestVersions): Promise<void>;
68
- createDrawing(projectExid: string, payload: GenerateFloorPayload, createdBy: string, version?: IngestVersions): Promise<_360FloorV2>;
63
+ }): Promise<_360FloorsResponse>;
64
+ getDrawingById(id: number, projectExid: string): Promise<_360FloorV2>;
65
+ updateDrawing(id: number, projectExid: string, payload: GenerateFloorPayload): Promise<_360FloorV2>;
66
+ deleteDrawing(id: number): Promise<void>;
67
+ transferWalks(sourceId: number, targetId: number, projectExid: string): Promise<void>;
68
+ createDrawing(projectExid: string, payload: GenerateFloorPayload, createdBy: string): Promise<_360FloorV2>;
69
69
  fetchDrawingOverlay(id: number, params: {
70
70
  view: boolean;
71
- }, onDownloadProgress: (progress: ProgressEvent) => void, version?: IngestVersions): Promise<Blob>;
72
- getFloorArchive(id: number, version?: IngestVersions): Promise<string>;
73
- generate360map(projectId: string, params: Generate360MapRequestPayload, version?: IngestVersions): Promise<JsonObject>;
74
- get360QueueSize(params: _360QueueQueryParams, version?: IngestVersions): Promise<_360QueueResponse>;
71
+ thumbnail?: boolean;
72
+ }, onDownloadProgress?: (progress: ProgressEvent) => void): Promise<string>;
73
+ getFloorArchive(id: number): Promise<string>;
74
+ generate360map(projectId: string, params: Generate360MapRequestPayload): Promise<JsonObject>;
75
+ get360QueueSize(ingestUrl: string, params?: _360QueueQueryParams): Promise<_360QueueResponse>;
75
76
  };
76
77
  bim: {
77
78
  createUpload(projectId: string, params: {
@@ -87,18 +88,38 @@ export declare const IngestApi: {
87
88
  name: string;
88
89
  }, payload: BimUploadPayload): Promise<void>;
89
90
  };
91
+ webhook: {
92
+ notifyBimUpdated(projectId: string, bimIdentifier: string): Promise<void>;
93
+ };
90
94
  mobileCapture: {
91
- getProjectMobileAssets(params: MobileAssetsQueryParams, extraConfig?: AxiosRequestConfig, version?: IngestVersions): Promise<MobileCaptureAssetsResponse>;
95
+ getProjectMobileAssets(params: MobileAssetsQueryParams, extraConfig?: AxiosRequestConfig): Promise<MobileCaptureAssetsResponse>;
92
96
  getMobileAssetPhoto(assetId: string | number, params: {
93
97
  projectId?: string;
94
98
  project_id?: string;
95
99
  isThumbnail?: boolean;
96
100
  is_thumbnail?: boolean;
97
- }, version?: IngestVersions): Promise<string>;
98
- deleteAsset(assetId: string | number, version?: IngestVersions): Promise<void>;
101
+ }): Promise<string>;
102
+ deleteAsset(assetId: string | number): Promise<void>;
99
103
  };
100
104
  utils: {
101
105
  loadAllAssetsInQueue(): Promise<({
106
+ ingestVersion: string;
107
+ id: number;
108
+ projectId: string;
109
+ consumed: boolean;
110
+ token: string;
111
+ flightDate: string;
112
+ flightGeolocation: string;
113
+ modelZip: string;
114
+ orthomosaicZip: string;
115
+ reportPdf: string;
116
+ processingLog: string;
117
+ uploadedBy: string;
118
+ processingStatus: import("@evercam/api/types").IngestProcessingStatus | string;
119
+ modelCesiumAssetId: string;
120
+ updatedAt: string;
121
+ hasTusLinks: boolean;
122
+ } | {
102
123
  ingestVersion: string;
103
124
  archive: string;
104
125
  date: string;
@@ -118,6 +139,7 @@ export declare const IngestApi: {
118
139
  processingStatus: string;
119
140
  projectId: string;
120
141
  report: string;
142
+ processingLog: string;
121
143
  route: unknown | null;
122
144
  startPosition: unknown | null;
123
145
  tusLinks: unknown | null;
@@ -125,23 +147,8 @@ export declare const IngestApi: {
125
147
  uploadedBy: string;
126
148
  videoArchive: string;
127
149
  videos: string[];
128
- } | {
129
- ingestVersion: string;
130
- id: number;
131
- projectId: string;
132
- consumed: boolean;
133
- token: string;
134
- flightDate: string;
135
- flightGeolocation: string;
136
- modelZip: string;
137
- orthomosaicZip: string;
138
- reportPdf: string;
139
- uploadedBy: string;
140
- processingStatus: import("@evercam/api/types").IngestProcessingStatus | string;
141
- modelCesiumAssetId: string;
142
- updatedAt: string;
143
- hasTusLinks: boolean;
144
150
  })[]>;
145
- choose360IngestVersion(): Promise<IngestVersions>;
151
+ getIngestVersion(ingestUrl: string): IngestVersions;
152
+ chooseIngestApiUrl(type: IngestTypes): Promise<string>;
146
153
  };
147
154
  };
@@ -1,26 +1,35 @@
1
1
  import { DateType } from "@evercam/api/types/time";
2
- export type _360CameraParams = {
3
- azimuthAngle: number;
4
- polarAngle: number;
2
+ import { GeoPoint, Point3D } from "@evercam/api/types/shared";
3
+ export type _360OverlayPosition = {
4
+ northEast: GeoPoint;
5
+ northWest: GeoPoint;
6
+ southEast: GeoPoint;
7
+ southWest: GeoPoint;
5
8
  };
6
- export type _360Vector3D = {
7
- x: number;
8
- y: number;
9
- z: number;
9
+ export type ForgeViewport = {
10
+ name: string;
11
+ eye: number[];
12
+ target: number[];
13
+ worldUpVector?: number[];
10
14
  };
11
- export type _360Geolocation = {
12
- latitude: number;
13
- longitude: number;
15
+ export type ForgeView = {
16
+ name: string;
17
+ viewport: ForgeViewport;
18
+ timestamp: string;
14
19
  };
15
20
  export type _360CameraRotation = {
16
21
  azimuthAngle: number;
17
22
  polarAngle: number;
18
23
  };
24
+ export type _360Geolocation = {
25
+ latitude: number;
26
+ longitude: number;
27
+ };
19
28
  export type _360Marker3D = {
20
- cameraPosition: _360Vector3D;
29
+ cameraPosition: Point3D;
21
30
  geolocation: _360Geolocation;
22
31
  nextRoomId: _360MakerId;
23
- position: _360Vector3D;
32
+ position: Point3D;
24
33
  rotation: {
25
34
  _order: "XYZ" | string;
26
35
  _x: number;
@@ -35,7 +44,7 @@ export type _360Tag = {
35
44
  comment: string;
36
45
  creationDate: number;
37
46
  currentRoom: _360MakerId;
38
- position: _360Vector3D;
47
+ position: Point3D;
39
48
  cameraRotation: _360CameraRotation;
40
49
  };
41
50
  export type _360FloorId = string | number;
@@ -45,8 +54,16 @@ export type _360Floor = {
45
54
  _3DMarkers: _360Marker3D[];
46
55
  cameraRotation: _360CameraRotation;
47
56
  fbxModel: string;
57
+ fbxModelHQ?: string;
58
+ pointCloudModelHQ?: string;
48
59
  initialMarker: _360MakerId;
49
60
  modelViewerFeatureFlag: boolean;
61
+ imagesOnlyFeatureFlag?: boolean;
62
+ forgeBIMFeatureFlag?: boolean;
63
+ isForgeGravityEnabled?: boolean;
64
+ initialForgeView?: ForgeView | null;
65
+ enhancedLightFeatureFlag?: boolean;
66
+ calibrationDetails?: Record<string, unknown>;
50
67
  route: {
51
68
  cameraHeadingOffset: string;
52
69
  overlayID: number;
@@ -54,7 +71,7 @@ export type _360Floor = {
54
71
  };
55
72
  sceneScale: number;
56
73
  steps: number;
57
- tags: Record<string, _360Tag>;
74
+ tags?: Record<string, _360Tag>;
58
75
  };
59
76
  export type _360WalkV2 = {
60
77
  archive: string;
@@ -75,6 +92,7 @@ export type _360WalkV2 = {
75
92
  processingStatus: string;
76
93
  projectId: string;
77
94
  report: string;
95
+ processingLog: string;
78
96
  route: unknown | null;
79
97
  startPosition: unknown | null;
80
98
  tusLinks: unknown | null;
@@ -92,24 +110,7 @@ export type _360FloorV2 = {
92
110
  hasOverlay: boolean;
93
111
  isCalibrated: boolean;
94
112
  createdBy: string | null;
95
- overlayPosition: {
96
- northEast: {
97
- lat: number;
98
- lng: number;
99
- };
100
- northWest: {
101
- lat: number;
102
- lng: number;
103
- };
104
- southEast: {
105
- lat: number;
106
- lng: number;
107
- };
108
- southWest: {
109
- lat: number;
110
- lng: number;
111
- };
112
- };
113
+ overlayPosition: _360OverlayPosition;
113
114
  insertedAt: string;
114
115
  updatedAt: string;
115
116
  };
@@ -123,11 +124,33 @@ export type _360Scene = {
123
124
  polarAngle: number;
124
125
  azimuthAngle: number;
125
126
  };
127
+ export declare enum _360PinType {
128
+ Default = "Default"
129
+ }
130
+ export type _360Pin = {
131
+ position: Point3D;
132
+ pinType: _360PinType;
133
+ pinId?: string;
134
+ cameraExid?: string;
135
+ name: string;
136
+ currentRoom?: _360MakerId;
137
+ cameraRotation?: _360CameraRotation;
138
+ };
126
139
  export type _360SceneRoute = {
127
140
  cameraHeadingOffset?: number;
128
141
  overlayID?: number;
129
142
  track?: string;
130
143
  };
144
+ export type _360ProjectListItem = {
145
+ integrationType: string;
146
+ projectId: string;
147
+ projectName: string;
148
+ providerID: string;
149
+ providerPrefix: string;
150
+ providerSuffix: string;
151
+ timeline: string;
152
+ uniqueId: string;
153
+ };
131
154
  export type _360FullProject = {
132
155
  dates: _360SceneWithFloors[];
133
156
  integrationType: string;
@@ -198,7 +221,7 @@ export declare enum PathMarkerColor {
198
221
  export type _360AssetsQueryParams = {
199
222
  page: number;
200
223
  limit: number;
201
- projectID: string;
224
+ projectId: string;
202
225
  date: DateType;
203
226
  floor: string;
204
227
  id: string;
@@ -231,24 +254,7 @@ export type GenerateFloorPayload = {
231
254
  changedBy: string;
232
255
  name?: string;
233
256
  mapStyle?: string;
234
- overlayPositionCorners: {
235
- northEast: {
236
- lat: number;
237
- lng: number;
238
- };
239
- northWest: {
240
- lat: number;
241
- lng: number;
242
- };
243
- southWest: {
244
- lat: number;
245
- lng: number;
246
- };
247
- southEast: {
248
- lat: number;
249
- lng: number;
250
- };
251
- };
257
+ overlayPositionCorners: _360OverlayPosition;
252
258
  };
253
259
  export type _360QueueQueryParams = {
254
260
  projectId?: string;
@@ -273,4 +279,14 @@ export type Generate360MapRequestPayload = {
273
279
  cameraOffset: string;
274
280
  startPoint: string;
275
281
  endPoint: string;
282
+ drawingId?: number;
283
+ markers?: Array<{
284
+ position: {
285
+ x: number;
286
+ y: number;
287
+ z: number;
288
+ };
289
+ }>;
290
+ startPointIndex?: number;
291
+ endPointIndex?: number;
276
292
  };
@@ -0,0 +1,154 @@
1
+ export declare enum AiApp {
2
+ GateReport = "gate_report",
3
+ Ppe = "ppe",
4
+ SiteAnalytics = "site_analytics"
5
+ }
6
+ export declare enum AiProvider {
7
+ Gemini = "gemini",
8
+ OpenAi = "openai",
9
+ Anthropic = "anthropic"
10
+ }
11
+ export declare enum AiConfigsPromptDialogMode {
12
+ Create = "create",
13
+ Edit = "edit",
14
+ View = "view"
15
+ }
16
+ export declare enum AiConfigsKeyDialogMode {
17
+ Create = "create",
18
+ Rotate = "rotate",
19
+ Rename = "rename"
20
+ }
21
+ export interface AiAppConfig {
22
+ bg: string;
23
+ fg: string;
24
+ border: string;
25
+ icon: string;
26
+ }
27
+ export declare const AI_APP_CONFIGS: Record<AiApp | "generic", AiAppConfig>;
28
+ export interface AiProviderConfig {
29
+ bg: string;
30
+ fg: string;
31
+ icon: string;
32
+ }
33
+ export declare const AI_PROVIDER_CONFIGS: Record<AiProvider, AiProviderConfig>;
34
+ export declare enum AiPromptModel {
35
+ Gemini3Pro = "gemini-3-pro",
36
+ Gemini3FlashPreview = "gemini-3-flash-preview",
37
+ Gemini25Pro = "gemini-2.5-pro",
38
+ Gemini25Flash = "gemini-2.5-flash",
39
+ Gemini20Flash = "gemini-2.0-flash",
40
+ Gpt5 = "gpt-5",
41
+ Gpt5Mini = "gpt-5-mini",
42
+ Gpt4o = "gpt-4o",
43
+ Gpt4oMini = "gpt-4o-mini",
44
+ ClaudeOpus45 = "claude-opus-4-5",
45
+ ClaudeSonnet46 = "claude-sonnet-4-6",
46
+ ClaudeHaiku45 = "claude-haiku-4-5"
47
+ }
48
+ export interface AiPrompt {
49
+ id: number;
50
+ title: string | null;
51
+ purpose: string | null;
52
+ app: string | null;
53
+ model: string | null;
54
+ prompt: string;
55
+ outputSchema: Record<string, unknown> | null;
56
+ createdBy: string;
57
+ createdAt: string;
58
+ updatedAt: string;
59
+ }
60
+ export interface AiPromptCreatePayload {
61
+ title?: string | null;
62
+ purpose: string;
63
+ app: string;
64
+ model?: string | null;
65
+ prompt: string;
66
+ outputSchema?: Record<string, unknown> | null;
67
+ }
68
+ export interface AiPromptUpdatePayload {
69
+ title?: string | null;
70
+ purpose?: string;
71
+ app?: string;
72
+ model?: string | null;
73
+ prompt?: string;
74
+ outputSchema?: Record<string, unknown> | null;
75
+ }
76
+ export type AiPromptQueryParams = {
77
+ app?: string;
78
+ purpose?: string;
79
+ model?: string;
80
+ search?: string;
81
+ createdBy?: string;
82
+ page?: number;
83
+ limit?: number;
84
+ };
85
+ export interface AiPromptListResponse {
86
+ items: AiPrompt[];
87
+ total: number;
88
+ page: number;
89
+ limit: number;
90
+ from: number;
91
+ to: number;
92
+ }
93
+ export interface AiPromptCreateResponse {
94
+ created: boolean;
95
+ data: AiPrompt;
96
+ message: string;
97
+ }
98
+ export interface AiPromptUpdateResponse {
99
+ updated: boolean;
100
+ id: number | string;
101
+ message: string;
102
+ }
103
+ export interface AiPromptDeleteResponse {
104
+ deleted: boolean;
105
+ count: number;
106
+ message: string;
107
+ }
108
+ export interface AiApiKey {
109
+ id: number;
110
+ projectExid: string;
111
+ provider: string;
112
+ name: string;
113
+ purpose: string;
114
+ enabled: boolean;
115
+ autoGenerated: boolean;
116
+ firstUsedAt: string | null;
117
+ lastUsedAt: string | null;
118
+ insertedAt: string;
119
+ updatedAt: string;
120
+ }
121
+ export interface AiApiKeyCreatePayload {
122
+ projectExid: string;
123
+ provider: string;
124
+ name?: string;
125
+ purpose?: string;
126
+ apiKey?: string;
127
+ enabled?: boolean;
128
+ }
129
+ export interface AiApiKeyUpdatePayload {
130
+ name?: string;
131
+ enabled?: boolean;
132
+ apiKey?: string;
133
+ }
134
+ export type AiApiKeyQueryParams = {
135
+ projectExid?: string;
136
+ provider?: string;
137
+ purpose?: string;
138
+ enabled?: boolean;
139
+ };
140
+ export interface AiApiKeyCreateResponse {
141
+ created: boolean;
142
+ data: AiApiKey;
143
+ message: string;
144
+ }
145
+ export interface AiApiKeyUpdateResponse {
146
+ updated: boolean;
147
+ id: number | string;
148
+ message: string;
149
+ }
150
+ export interface AiApiKeyDeleteResponse {
151
+ deleted: boolean;
152
+ count: number;
153
+ message: string;
154
+ }