@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,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,50 +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
- generate360map(projectId: string, params: Generate360MapRequestPayload, version?: IngestVersions): Promise<JsonObject>;
73
- 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>;
74
76
  };
75
77
  bim: {
76
78
  createUpload(projectId: string, params: {
@@ -86,18 +88,38 @@ export declare const IngestApi: {
86
88
  name: string;
87
89
  }, payload: BimUploadPayload): Promise<void>;
88
90
  };
91
+ webhook: {
92
+ notifyBimUpdated(projectId: string, bimIdentifier: string): Promise<void>;
93
+ };
89
94
  mobileCapture: {
90
- getProjectMobileAssets(params: MobileAssetsQueryParams, extraConfig?: AxiosRequestConfig, version?: IngestVersions): Promise<MobileCaptureAssetsResponse>;
95
+ getProjectMobileAssets(params: MobileAssetsQueryParams, extraConfig?: AxiosRequestConfig): Promise<MobileCaptureAssetsResponse>;
91
96
  getMobileAssetPhoto(assetId: string | number, params: {
92
97
  projectId?: string;
93
98
  project_id?: string;
94
99
  isThumbnail?: boolean;
95
100
  is_thumbnail?: boolean;
96
- }, version?: IngestVersions): Promise<string>;
97
- deleteAsset(assetId: string | number, version?: IngestVersions): Promise<void>;
101
+ }): Promise<string>;
102
+ deleteAsset(assetId: string | number): Promise<void>;
98
103
  };
99
104
  utils: {
100
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
+ } | {
101
123
  ingestVersion: string;
102
124
  archive: string;
103
125
  date: string;
@@ -117,6 +139,7 @@ export declare const IngestApi: {
117
139
  processingStatus: string;
118
140
  projectId: string;
119
141
  report: string;
142
+ processingLog: string;
120
143
  route: unknown | null;
121
144
  startPosition: unknown | null;
122
145
  tusLinks: unknown | null;
@@ -124,23 +147,8 @@ export declare const IngestApi: {
124
147
  uploadedBy: string;
125
148
  videoArchive: string;
126
149
  videos: string[];
127
- } | {
128
- ingestVersion: string;
129
- id: number;
130
- projectId: string;
131
- consumed: boolean;
132
- token: string;
133
- flightDate: string;
134
- flightGeolocation: string;
135
- modelZip: string;
136
- orthomosaicZip: string;
137
- reportPdf: string;
138
- uploadedBy: string;
139
- processingStatus: import("@evercam/api/types").IngestProcessingStatus | string;
140
- modelCesiumAssetId: string;
141
- updatedAt: string;
142
- hasTusLinks: boolean;
143
150
  })[]>;
144
- choose360IngestVersion(): Promise<IngestVersions>;
151
+ getIngestVersion(ingestUrl: string): IngestVersions;
152
+ chooseIngestApiUrl(type: IngestTypes): Promise<string>;
145
153
  };
146
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
+ }