@evercam/api 1.0.0-fbf4f4d51 → 1.0.0-feccd27be

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 +44 -13
  4. package/dist/api/api/aiApi.d.ts +85 -50
  5. package/dist/api/api/authzApi.d.ts +1 -2
  6. package/dist/api/api/evercamApi.d.ts +54 -3
  7. package/dist/api/api/evercamLabsApi.d.ts +1 -2
  8. package/dist/api/api/exNvrApi.d.ts +1 -1
  9. package/dist/api/api/ingestApi.d.ts +46 -42
  10. package/dist/api/types/360.d.ts +56 -51
  11. package/dist/api/types/aiConfigs.d.ts +154 -0
  12. package/dist/api/types/analytics.d.ts +85 -54
  13. package/dist/api/types/anpr.d.ts +40 -0
  14. package/dist/api/types/auditLogs.d.ts +18 -0
  15. package/dist/api/types/authz.d.ts +1 -0
  16. package/dist/api/types/automation.d.ts +11 -2
  17. package/dist/api/types/axios.d.ts +3 -3
  18. package/dist/api/types/bim.d.ts +17 -0
  19. package/dist/api/types/camera.d.ts +18 -26
  20. package/dist/api/types/comments.d.ts +8 -6
  21. package/dist/api/types/connector.d.ts +1 -0
  22. package/dist/api/types/coolify.d.ts +18 -2
  23. package/dist/api/types/copilot.d.ts +10 -5
  24. package/dist/api/types/detections.d.ts +6 -11
  25. package/dist/api/types/drone.d.ts +96 -6
  26. package/dist/api/types/gateReport.d.ts +19 -32
  27. package/dist/api/types/gateReportManagement.d.ts +175 -0
  28. package/dist/api/types/index.d.ts +7 -1
  29. package/dist/api/types/ingest.d.ts +18 -3
  30. package/dist/api/types/map.d.ts +12 -0
  31. package/dist/api/types/media.d.ts +1 -0
  32. package/dist/api/types/oauth.d.ts +62 -0
  33. package/dist/api/types/planner.d.ts +97 -0
  34. package/dist/api/types/progressPhoto.d.ts +2 -1
  35. package/dist/api/types/project.d.ts +31 -3
  36. package/dist/api/types/recording.d.ts +4 -10
  37. package/dist/api/types/ring.d.ts +53 -0
  38. package/dist/api/types/roi.d.ts +2 -2
  39. package/dist/api/types/shared.d.ts +19 -0
  40. package/dist/api/types/siteAnalytics.d.ts +7 -17
  41. package/dist/api/types/siteView.d.ts +74 -0
  42. package/dist/api/types/smartSeach.d.ts +5 -0
  43. package/dist/api/types/snapshots.d.ts +48 -3
  44. package/dist/api/types/storageProvider.d.ts +19 -0
  45. package/dist/api/types/timelapse.d.ts +6 -2
  46. package/dist/api/types/user.d.ts +0 -2
  47. package/dist/api/utils.d.ts +0 -1
  48. package/dist/index.js +1734 -963
  49. package/dist/index.js.map +1 -1
  50. package/dist/index.umd.cjs +1 -1
  51. package/dist/index.umd.cjs.map +1 -1
  52. package/dist/shared/types/components.d.ts +62 -9
  53. package/dist/shared/types/imagePlayer.d.ts +9 -2
  54. package/dist/shared/types/index.d.ts +1 -0
  55. package/dist/shared/types/rbac.d.ts +67 -0
  56. package/package.json +2 -2
  57. package/dist/api/types/storageServers.d.ts +0 -4
@@ -1,4 +1,4 @@
1
- import { CameraExid, CopilotConversation, CopilotMessage, CopilotMessageStep, SegmentsCountsParams, FeedbackPayload, GrafanaKitMetrics, LabsPaginationParams, LuminanceReading, PaginatedItems, SegmentsPresenceByLabel, ActiveUsersResponsePayload, ActiveUsersRequestPayload, HeatmapIntersectionsRequestParams, SmartSearchHeatmapPoint, SiteAnalyticsProcessingStatusPayload, SiteAnalyticsProcessingStatus } from "@evercam/api/types";
1
+ import { CameraExid, CopilotConversation, CopilotMessage, CopilotMessageStep, FeedbackPayload, GrafanaKitMetrics, LabsPaginationParams, LuminanceReading, PaginatedItems, ActiveUsersResponsePayload, ActiveUsersRequestPayload, HeatmapIntersectionsRequestParams, SmartSearchHeatmapPoint, SiteAnalyticsProcessingStatusPayload, SiteAnalyticsProcessingStatus } from "@evercam/api/types";
2
2
  import { GrafanaMetricId, KitMetricPeriod } from "@evercam/api/types";
3
3
  import type { SwrRequestConfig } from "@evercam/api/types";
4
4
  export declare function getLabsBaseUrl(): string | null | undefined;
@@ -21,7 +21,6 @@ export declare const EvercamLabsApi: {
21
21
  };
22
22
  siteAnalytics: {
23
23
  getProcessingStatus(params?: SiteAnalyticsProcessingStatusPayload, config?: SwrRequestConfig<SiteAnalyticsProcessingStatus[]>): Promise<SiteAnalyticsProcessingStatus[]>;
24
- getSegmentsDateIntervals({ cameraExid, fromDate, toDate, precision, }: SegmentsCountsParams): Promise<SegmentsPresenceByLabel>;
25
24
  getIntersectionsHeatmapData(params: HeatmapIntersectionsRequestParams): Promise<SmartSearchHeatmapPoint[]>;
26
25
  };
27
26
  googleCloudStorage: {
@@ -1,4 +1,4 @@
1
- import { ExNvrDeviceConfig, ExNvrLoginResponse, ExNvrRecordingInterval, ExNvrSystemStatus } from "@evercam/api/types/";
1
+ import { ExNvrDeviceConfig, ExNvrLoginResponse, ExNvrRecordingInterval, ExNvrSystemStatus } from "@evercam/api/types";
2
2
  export declare const ExNvrApi: {
3
3
  users: {
4
4
  login({ apiUrl, username, password, }: {
@@ -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: {
@@ -87,17 +89,33 @@ export declare const IngestApi: {
87
89
  }, payload: BimUploadPayload): Promise<void>;
88
90
  };
89
91
  mobileCapture: {
90
- getProjectMobileAssets(params: MobileAssetsQueryParams, extraConfig?: AxiosRequestConfig, version?: IngestVersions): Promise<MobileCaptureAssetsResponse>;
92
+ getProjectMobileAssets(params: MobileAssetsQueryParams, extraConfig?: AxiosRequestConfig): Promise<MobileCaptureAssetsResponse>;
91
93
  getMobileAssetPhoto(assetId: string | number, params: {
92
94
  projectId?: string;
93
95
  project_id?: string;
94
96
  isThumbnail?: boolean;
95
97
  is_thumbnail?: boolean;
96
- }, version?: IngestVersions): Promise<string>;
97
- deleteAsset(assetId: string | number, version?: IngestVersions): Promise<void>;
98
+ }): Promise<string>;
99
+ deleteAsset(assetId: string | number): Promise<void>;
98
100
  };
99
101
  utils: {
100
102
  loadAllAssetsInQueue(): Promise<({
103
+ ingestVersion: string;
104
+ id: number;
105
+ projectId: string;
106
+ consumed: boolean;
107
+ token: string;
108
+ flightDate: string;
109
+ flightGeolocation: string;
110
+ modelZip: string;
111
+ orthomosaicZip: string;
112
+ reportPdf: string;
113
+ uploadedBy: string;
114
+ processingStatus: import("@evercam/api/types").IngestProcessingStatus | string;
115
+ modelCesiumAssetId: string;
116
+ updatedAt: string;
117
+ hasTusLinks: boolean;
118
+ } | {
101
119
  ingestVersion: string;
102
120
  archive: string;
103
121
  date: string;
@@ -124,22 +142,8 @@ export declare const IngestApi: {
124
142
  uploadedBy: string;
125
143
  videoArchive: string;
126
144
  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
145
  })[]>;
146
+ getIngestVersion(ingestUrl: string): IngestVersions;
147
+ chooseIngestApiUrl(type: IngestTypes): Promise<string>;
144
148
  };
145
149
  };
@@ -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;
@@ -92,24 +109,7 @@ export type _360FloorV2 = {
92
109
  hasOverlay: boolean;
93
110
  isCalibrated: boolean;
94
111
  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
- };
112
+ overlayPosition: _360OverlayPosition;
113
113
  insertedAt: string;
114
114
  updatedAt: string;
115
115
  };
@@ -123,11 +123,33 @@ export type _360Scene = {
123
123
  polarAngle: number;
124
124
  azimuthAngle: number;
125
125
  };
126
+ export declare enum _360PinType {
127
+ Default = "Default"
128
+ }
129
+ export type _360Pin = {
130
+ position: Point3D;
131
+ pinType: _360PinType;
132
+ pinId?: string;
133
+ cameraExid?: string;
134
+ name: string;
135
+ currentRoom?: _360MakerId;
136
+ cameraRotation?: _360CameraRotation;
137
+ };
126
138
  export type _360SceneRoute = {
127
139
  cameraHeadingOffset?: number;
128
140
  overlayID?: number;
129
141
  track?: string;
130
142
  };
143
+ export type _360ProjectListItem = {
144
+ integrationType: string;
145
+ projectId: string;
146
+ projectName: string;
147
+ providerID: string;
148
+ providerPrefix: string;
149
+ providerSuffix: string;
150
+ timeline: string;
151
+ uniqueId: string;
152
+ };
131
153
  export type _360FullProject = {
132
154
  dates: _360SceneWithFloors[];
133
155
  integrationType: string;
@@ -198,7 +220,7 @@ export declare enum PathMarkerColor {
198
220
  export type _360AssetsQueryParams = {
199
221
  page: number;
200
222
  limit: number;
201
- projectID: string;
223
+ projectId: string;
202
224
  date: DateType;
203
225
  floor: string;
204
226
  id: string;
@@ -231,24 +253,7 @@ export type GenerateFloorPayload = {
231
253
  changedBy: string;
232
254
  name?: string;
233
255
  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
- };
256
+ overlayPositionCorners: _360OverlayPosition;
252
257
  };
253
258
  export type _360QueueQueryParams = {
254
259
  projectId?: string;
@@ -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
+ }