@ngis/plugin-sdk 0.4.0

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 (70) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +31 -0
  3. package/dist/index.cjs +76 -0
  4. package/dist/index.d.ts +77 -0
  5. package/dist/index.mjs +102 -0
  6. package/dist/src/api/analysis.d.ts +140 -0
  7. package/dist/src/api/resources.d.ts +530 -0
  8. package/dist/src/api/scenes.d.ts +251 -0
  9. package/dist/src/api/users.d.ts +22 -0
  10. package/dist/src/domain/algorithms/deck-layer-style.d.ts +34 -0
  11. package/dist/src/domain/algorithms/maplibre-style.d.ts +63 -0
  12. package/dist/src/domain/algorithms/raster-color-ramps.d.ts +37 -0
  13. package/dist/src/domain/algorithms/scene-layer-type.d.ts +25 -0
  14. package/dist/src/domain/algorithms/symbol-compile.d.ts +100 -0
  15. package/dist/src/domain/algorithms/symbol-params.d.ts +90 -0
  16. package/dist/src/domain/map/bounds.d.ts +8 -0
  17. package/dist/src/domain/map/constants.d.ts +40 -0
  18. package/dist/src/domain/map/layer-builders.d.ts +32 -0
  19. package/dist/src/domain/map/rendered-layers.d.ts +30 -0
  20. package/dist/src/domain/map/style-ready.d.ts +24 -0
  21. package/dist/src/domain/map/tile-url.d.ts +20 -0
  22. package/dist/src/domain/map/types.d.ts +128 -0
  23. package/dist/src/domain/models/deck-layer-style.d.ts +211 -0
  24. package/dist/src/domain/models/scene-layer-type.d.ts +23 -0
  25. package/dist/src/domain/models/symbol.d.ts +424 -0
  26. package/dist/src/lib/api.d.ts +82 -0
  27. package/dist/src/lib/auth-session.d.ts +22 -0
  28. package/dist/src/lib/raster-color-layer/RasterColorLayer.d.ts +48 -0
  29. package/dist/src/lib/raster-color-layer/TileGrid.d.ts +31 -0
  30. package/dist/src/lib/raster-color-layer/colorRamp.d.ts +18 -0
  31. package/dist/src/lib/raster-color-layer/shaders/raster-color.frag.d.ts +2 -0
  32. package/dist/src/lib/raster-color-layer/shaders/raster-color.vert.d.ts +2 -0
  33. package/dist/src/lib/raster-color-layer/zoomInterpolate.d.ts +2 -0
  34. package/dist/src/sdk/commands.d.ts +113 -0
  35. package/dist/src/sdk/context/keys.d.ts +148 -0
  36. package/dist/src/sdk/context/publishers.d.ts +198 -0
  37. package/dist/src/sdk/context/store.d.ts +78 -0
  38. package/dist/src/sdk/context/when.d.ts +69 -0
  39. package/dist/src/sdk/contributions/dispatch.d.ts +78 -0
  40. package/dist/src/sdk/contributions/panel-id.d.ts +25 -0
  41. package/dist/src/sdk/contributions/registry.d.ts +199 -0
  42. package/dist/src/sdk/contributions/symbol-renderers.d.ts +107 -0
  43. package/dist/src/sdk/contributions/types.d.ts +288 -0
  44. package/dist/src/sdk/contributions/views-bridge.d.ts +92 -0
  45. package/dist/src/sdk/define-plugin.d.ts +17 -0
  46. package/dist/src/sdk/facets/storage.d.ts +152 -0
  47. package/dist/src/sdk/facets/types.d.ts +370 -0
  48. package/dist/src/sdk/host-api.d.ts +256 -0
  49. package/dist/src/sdk/map-api.d.ts +288 -0
  50. package/dist/src/sdk/panels.d.ts +130 -0
  51. package/dist/src/sdk/plugin.d.ts +145 -0
  52. package/dist/src/sdk/rail-tools.d.ts +58 -0
  53. package/dist/src/sdk/scopes.d.ts +158 -0
  54. package/dist/src/systems/renderer/DeckSceneRenderer.d.ts +26 -0
  55. package/dist/src/systems/renderer/FlowFieldLayer.d.ts +68 -0
  56. package/dist/src/systems/renderer/LayerRendererRegistry.d.ts +132 -0
  57. package/dist/src/systems/renderer/authenticated-deck-load.d.ts +4 -0
  58. package/dist/src/systems/renderer/deck/deck-layer-builders.d.ts +29 -0
  59. package/dist/src/systems/renderer/deck/deck-layer-helpers.d.ts +21 -0
  60. package/dist/src/systems/renderer/deck/mvt-point-aggregation-layer.d.ts +107 -0
  61. package/dist/src/systems/renderer/flow-field/flow-field-resources.d.ts +84 -0
  62. package/dist/src/systems/renderer/flow-field/flow-field-shaders.d.ts +4 -0
  63. package/dist/src/systems/renderer/symbol/SpriteRegistry.d.ts +34 -0
  64. package/dist/src/systems/renderer/symbol/entries.d.ts +67 -0
  65. package/dist/src/types/analysis.d.ts +205 -0
  66. package/dist/src/types/common.d.ts +17 -0
  67. package/dist/src/types/extensions.d.ts +560 -0
  68. package/dist/src/types/gis.d.ts +242 -0
  69. package/dist/src/types/market-social.d.ts +378 -0
  70. package/package.json +47 -0
@@ -0,0 +1,530 @@
1
+ export type ResourceScope = "mine" | "shared" | "public" | "trash";
2
+ export type ResourceType = "vector" | "raster" | "flow-field" | "table" | "file";
3
+ export type ResourceStatus = "ready" | "processing" | "failed";
4
+ export type ResourceAccess = "private" | "shared" | "team" | "public";
5
+ export type ResourceReadMode = "live" | "snapshot";
6
+ export type ResourceShareMode = "FROZEN" | "LIVE";
7
+ export type SharingResourceType = "FILE" | "SCENE" | string;
8
+ export type SharingPrincipalType = "USER" | "GROUP" | "PUBLIC";
9
+ export type SharingPermission = "READ" | "WRITE" | "OWNER" | string;
10
+ export interface PageResult<T> {
11
+ content: T[];
12
+ totalElements: number;
13
+ totalPages: number;
14
+ size: number;
15
+ number: number;
16
+ first?: boolean;
17
+ last?: boolean;
18
+ }
19
+ export interface NgisFileRef {
20
+ id: number;
21
+ fileId: string;
22
+ ownerId: string;
23
+ folderId?: string | null;
24
+ displayName?: string | null;
25
+ hidden?: boolean;
26
+ createdAt?: string | null;
27
+ fileType?: string | null;
28
+ size?: number | null;
29
+ source?: string | null;
30
+ derivedFromFileId?: string | null;
31
+ producedByTaskId?: string | null;
32
+ }
33
+ export interface NgisFile {
34
+ id: string;
35
+ name?: string | null;
36
+ displayName?: string | null;
37
+ size?: number | null;
38
+ md5?: string | null;
39
+ minioKey?: string | null;
40
+ ownerCount?: number | null;
41
+ source?: string | null;
42
+ fileType?: string | null;
43
+ createdAt?: string | null;
44
+ deletedAt?: string | null;
45
+ orphanedAt?: string | null;
46
+ originFileId?: string | null;
47
+ originOwnerId?: string | null;
48
+ originSharedId?: string | null;
49
+ derivedFromFileId?: string | null;
50
+ producedByTaskId?: string | null;
51
+ flowField?: FlowFieldSummary | null;
52
+ }
53
+ export interface FlowFieldSummary {
54
+ status: string;
55
+ schemaVersion: string;
56
+ datasetVersion: string;
57
+ crs: string;
58
+ bounds: [number, number, number, number];
59
+ grid?: {
60
+ width?: number;
61
+ height?: number;
62
+ [key: string]: unknown;
63
+ } | null;
64
+ clip?: {
65
+ mode?: string;
66
+ sourceFileId?: string | null;
67
+ geometryType?: string | null;
68
+ geometryHash?: string | null;
69
+ rasterization?: string;
70
+ [key: string]: unknown;
71
+ } | null;
72
+ totalAssetBytes: number;
73
+ assetCount: number;
74
+ shareSupported: boolean;
75
+ copyToLibrarySupported: boolean;
76
+ }
77
+ export interface NgisFileFolder {
78
+ id: string;
79
+ ownerId: string;
80
+ name: string;
81
+ parentId?: string | null;
82
+ size?: number | null;
83
+ createdAt?: string | null;
84
+ }
85
+ export interface NgisUploadSession {
86
+ uploadId: string;
87
+ userId?: string | null;
88
+ fileName: string;
89
+ md5: string;
90
+ chunkCount: number;
91
+ bitmap?: string | null;
92
+ status?: string | null;
93
+ expireAt?: string | null;
94
+ }
95
+ export type StorageQuotaState = "NORMAL" | "FULL" | "OVER_LIMIT";
96
+ export type StorageQuotaSpace = "PERSONAL" | "TRASH";
97
+ export type StorageQuotaApplicationStatus = "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
98
+ export interface StorageQuota {
99
+ quotaBytes: number;
100
+ usedBytes: number;
101
+ reservedBytes: number;
102
+ availableBytes: number;
103
+ usageRatio: number;
104
+ state: StorageQuotaState;
105
+ pendingApplication?: {
106
+ id: string;
107
+ requestedQuotaBytes: number;
108
+ status: StorageQuotaApplicationStatus;
109
+ createdAt: string;
110
+ } | null;
111
+ trashQuotaBytes: number;
112
+ trashUsedBytes: number;
113
+ trashAvailableBytes: number;
114
+ trashUsageRatio: number;
115
+ trashState: StorageQuotaState;
116
+ trashRetentionDays: number;
117
+ pendingTrashApplication?: {
118
+ id: string;
119
+ requestedQuotaBytes: number;
120
+ status: StorageQuotaApplicationStatus;
121
+ createdAt: string;
122
+ } | null;
123
+ }
124
+ export interface StorageTrashSettings {
125
+ retentionDays: number;
126
+ }
127
+ export interface StorageQuotaApplication {
128
+ id: string;
129
+ applicantId: string;
130
+ applicantUsername?: string | null;
131
+ applicantEmail?: string | null;
132
+ quotaSpace: StorageQuotaSpace;
133
+ quotaAtSubmit: number;
134
+ usedAtSubmit: number;
135
+ requestedQuotaBytes: number;
136
+ reason: string;
137
+ status: StorageQuotaApplicationStatus;
138
+ reviewerId?: string | null;
139
+ grantedQuotaBytes?: number | null;
140
+ reviewNote?: string | null;
141
+ reviewedAt?: string | null;
142
+ createdAt: string;
143
+ updatedAt: string;
144
+ }
145
+ export interface StorageQuotaAdminApplication {
146
+ application: StorageQuotaApplication;
147
+ currentQuotaBytes: number;
148
+ currentUsedBytes: number;
149
+ currentReservedBytes: number;
150
+ currentAvailableBytes: number;
151
+ }
152
+ export interface StorageQuotaApplicationDetail {
153
+ application: StorageQuotaApplication;
154
+ currentQuotaBytes: number;
155
+ currentUsedBytes: number;
156
+ currentReservedBytes: number;
157
+ applicantHistory: StorageQuotaApplication[];
158
+ }
159
+ export interface NgisResourcePermission {
160
+ id: number;
161
+ resourceType: SharingResourceType;
162
+ resourceId: string;
163
+ principalType: SharingPrincipalType | string;
164
+ principalId?: string | null;
165
+ permission: SharingPermission;
166
+ grantedBy: string;
167
+ grantedAt: string;
168
+ }
169
+ export interface NgisSharedResource {
170
+ id: string;
171
+ sourceFileId?: string | null;
172
+ ownerId?: string | null;
173
+ name?: string | null;
174
+ fileType?: string | null;
175
+ freezeStatus?: "PENDING" | "READY" | "FAILED" | string | null;
176
+ mode?: ResourceShareMode | string | null;
177
+ version?: number | null;
178
+ publishedAt?: string | null;
179
+ }
180
+ export interface NgisUserGroup {
181
+ id: string;
182
+ ownerId?: string | null;
183
+ name: string;
184
+ description?: string | null;
185
+ createdAt?: string | null;
186
+ }
187
+ export interface GrantSharingParams {
188
+ resourceType?: SharingResourceType;
189
+ resourceId: string;
190
+ principalType: SharingPrincipalType;
191
+ principalId?: string | null;
192
+ permission: SharingPermission;
193
+ }
194
+ export interface PublicFileView {
195
+ fileId: string;
196
+ displayName?: string | null;
197
+ fileType?: string | null;
198
+ size?: number | null;
199
+ ownerId?: string | null;
200
+ publishedAt?: string | null;
201
+ }
202
+ export interface DatasetField {
203
+ name: string;
204
+ type: string;
205
+ nullable?: boolean;
206
+ }
207
+ export interface DatasetInfo {
208
+ fileId: string;
209
+ snapshot?: boolean | null;
210
+ snapshotId?: string | null;
211
+ mode?: ResourceShareMode | string | null;
212
+ datasetType: "VECTOR" | "RASTER" | "GENERIC" | string;
213
+ status: "PENDING" | "PROCESSING" | "DONE" | "FAILED" | "NOT_REGISTERED" | "N/A" | string;
214
+ vector?: {
215
+ geometryType?: string | null;
216
+ featureCount?: number | null;
217
+ srid?: number | null;
218
+ nativeSrid?: number | null;
219
+ workingSrid?: number | null;
220
+ fieldsSchema?: DatasetField[] | string | null;
221
+ pgTableName?: string | null;
222
+ errorMessage?: string | null;
223
+ } | null;
224
+ raster?: {
225
+ cogVariantId?: string | null;
226
+ srid?: number | null;
227
+ bandCount?: number | null;
228
+ noDataValue?: number | null;
229
+ pixelSizeX?: number | null;
230
+ pixelSizeY?: number | null;
231
+ bandStats?: unknown;
232
+ errorMessage?: string | null;
233
+ cogVariantSize?: number | null;
234
+ } | null;
235
+ }
236
+ export interface RasterBandStats {
237
+ bandIndex?: number | null;
238
+ min?: number | null;
239
+ max?: number | null;
240
+ mean?: number | null;
241
+ std?: number | null;
242
+ }
243
+ export interface DatasetBbox {
244
+ minX: number;
245
+ minY: number;
246
+ maxX: number;
247
+ maxY: number;
248
+ }
249
+ export interface DatasetAttributeField {
250
+ name: string;
251
+ type: string;
252
+ nullable?: boolean;
253
+ }
254
+ export interface DatasetAttributeMeta {
255
+ datasetId: string;
256
+ type: string;
257
+ total: number;
258
+ fields: DatasetAttributeField[];
259
+ defaultSelect: string[];
260
+ sortable: string[];
261
+ filterable: string[];
262
+ maxPageSize: number;
263
+ }
264
+ export interface DatasetAttributeValueCount {
265
+ value: string | number | boolean | null;
266
+ count: number;
267
+ }
268
+ export interface DatasetAttributeValues {
269
+ field: string;
270
+ type: string;
271
+ totalCount: number;
272
+ uniqueCount: number;
273
+ truncated: boolean;
274
+ values: DatasetAttributeValueCount[];
275
+ }
276
+ export interface DatasetAttributeStats {
277
+ field: string;
278
+ type: string;
279
+ count: number;
280
+ nullCount: number;
281
+ min?: number | null;
282
+ max?: number | null;
283
+ mean?: number | null;
284
+ stddev?: number | null;
285
+ sum?: number | null;
286
+ percentiles?: Record<string, number>;
287
+ }
288
+ export interface ClassifyDatasetAttributeParams {
289
+ field: string;
290
+ method?: "equal-interval" | "quantile" | "natural-breaks";
291
+ classes?: number;
292
+ }
293
+ export interface DatasetAttributeClassifyResult {
294
+ field: string;
295
+ method: string;
296
+ classes: number;
297
+ breaks: number[];
298
+ }
299
+ export type DatasetAttributeWhereOp = "=" | "!=" | ">" | ">=" | "<" | "<=" | "like" | "in" | "between";
300
+ export interface DatasetAttributeQueryParams {
301
+ select?: string[];
302
+ filter?: {
303
+ bbox?: [number, number, number, number];
304
+ where?: {
305
+ field: string;
306
+ op: DatasetAttributeWhereOp;
307
+ value: unknown;
308
+ }[];
309
+ };
310
+ sort?: {
311
+ field: string;
312
+ dir: "asc" | "desc";
313
+ }[];
314
+ page?: {
315
+ limit?: number;
316
+ offset?: number;
317
+ cursor?: string;
318
+ };
319
+ includeGeometry?: boolean;
320
+ }
321
+ /** One feature row from `attributes/query`. `id` is a stable per-feature UUID,
322
+ * returned on every row regardless of `select`, and usable for selection. */
323
+ export interface DatasetFeatureRow extends Record<string, unknown> {
324
+ id: string;
325
+ }
326
+ export interface DatasetAttributeQueryResult {
327
+ items: DatasetFeatureRow[];
328
+ /** Number of rows returned in this page. */
329
+ pageSize: number;
330
+ /** True when at least one more row exists past this page. */
331
+ hasMore: boolean;
332
+ /**
333
+ * @deprecated Always `null`. The service hardcodes it and the endpoint pages
334
+ * by `page.offset` only — never gate `hasMore` on this field.
335
+ */
336
+ nextCursor: string | null;
337
+ /** Server-reported query time in ms (diagnostic). */
338
+ elapsedMs?: number;
339
+ }
340
+ /** The `filter` shape shared by `attributes/query`, `count`, `export`, `subset`. */
341
+ export type DatasetAttributeFilter = NonNullable<DatasetAttributeQueryParams["filter"]>;
342
+ export interface DatasetAttributeCountResult {
343
+ /** Number of rows matching the supplied filter (unfiltered total if omitted). */
344
+ count: number;
345
+ elapsedMs?: number;
346
+ }
347
+ /**
348
+ * A cross-window selection, expressed exactly one of two ways (per api-guide §4):
349
+ * an explicit id list (≤ 10000), or an all-matching `filter` minus deselections.
350
+ */
351
+ export type DatasetAttributeSelection = {
352
+ ids: string[];
353
+ } | {
354
+ filter?: DatasetAttributeFilter;
355
+ excludeIds?: string[];
356
+ };
357
+ export interface ExportDatasetAttributesParams {
358
+ selection: DatasetAttributeSelection;
359
+ format: "csv" | "geojson";
360
+ /** Columns to export (omitted → all fields). */
361
+ select?: string[];
362
+ includeGeometry?: boolean;
363
+ }
364
+ export interface ExportDatasetAttributesResult {
365
+ blob: Blob;
366
+ filename: string;
367
+ }
368
+ export interface SubsetDatasetAttributesResult {
369
+ /** The new derived dataset's file id (runs through the import pipeline). */
370
+ fileId: string;
371
+ datasetStatus: string;
372
+ }
373
+ export interface ResourceField {
374
+ name: string;
375
+ kind: string;
376
+ sample: string;
377
+ }
378
+ export interface ResourceFolder {
379
+ id: string;
380
+ name: string;
381
+ parentId: string | null;
382
+ sizeBytes: number;
383
+ createdAt: string | null;
384
+ }
385
+ export interface ResourceListItem {
386
+ id: string;
387
+ scope: ResourceScope;
388
+ fileId: string;
389
+ refId?: number | null;
390
+ folderId?: string | null;
391
+ name: string;
392
+ filename: string;
393
+ type: ResourceType;
394
+ status: ResourceStatus;
395
+ access: ResourceAccess;
396
+ ownerLabel: string;
397
+ source: string;
398
+ modifiedAt: string | null;
399
+ modified: string;
400
+ sizeBytes: number;
401
+ size: string;
402
+ features: string;
403
+ srid: string;
404
+ geometry: string;
405
+ format: string;
406
+ bbox: string;
407
+ lineage: string;
408
+ originFileId?: string | null;
409
+ derivedFromFileId?: string | null;
410
+ producedByTaskId?: string | null;
411
+ flowFieldClip?: FlowFieldSummary["clip"];
412
+ fields: ResourceField[];
413
+ tags: string[];
414
+ fileType: string;
415
+ datasetStatus: string;
416
+ errorMessage?: string | null;
417
+ readMode: ResourceReadMode;
418
+ snapshotId?: string | null;
419
+ shareMode: ResourceShareMode;
420
+ canCopy: boolean;
421
+ canDelete: boolean;
422
+ canManageSharing: boolean;
423
+ canRepublish: boolean;
424
+ canRetry: boolean;
425
+ }
426
+ export interface ResourceListResult {
427
+ items: ResourceListItem[];
428
+ page: number;
429
+ size: number;
430
+ total: number;
431
+ }
432
+ export type FileReferenceKind = "CURRENT_ORIGINAL" | "CURRENT_WORKING" | "HISTORICAL_VERSION";
433
+ export interface FileReferenceInfo {
434
+ sceneId: string;
435
+ sceneName: string;
436
+ sceneOwnerId: string;
437
+ resourceId: string;
438
+ resourceName: string;
439
+ referenceKind: FileReferenceKind;
440
+ }
441
+ export interface FileShareSummary {
442
+ shared: boolean;
443
+ grantCount: number;
444
+ snapshotStatus?: string | null;
445
+ copyCount: number;
446
+ }
447
+ export interface FileDeletionPreflight {
448
+ sceneReferences: FileReferenceInfo[];
449
+ shareSummary: FileShareSummary;
450
+ }
451
+ export interface FileDetachSummary {
452
+ resourcesDeleted: number;
453
+ resourcesReverted: number;
454
+ versionsPruned: number;
455
+ scenesAffected: number;
456
+ }
457
+ export interface ListResourcesParams {
458
+ scope: ResourceScope;
459
+ folderId?: string | null;
460
+ page?: number;
461
+ size?: number;
462
+ }
463
+ export interface UploadProgress {
464
+ phase: "hashing" | "uploading" | "merging";
465
+ loaded: number;
466
+ total: number;
467
+ }
468
+ export interface UploadFileOptions {
469
+ folderId?: string | null;
470
+ fileName?: string;
471
+ chunkSize?: number;
472
+ onProgress?: (progress: UploadProgress) => void;
473
+ signal?: AbortSignal;
474
+ onSessionCreated?: (session: NgisUploadSession) => void;
475
+ }
476
+ export declare const resourcesApi: {
477
+ getFile(fileId: string): Promise<NgisFile>;
478
+ listResources(params: ListResourcesParams): Promise<ResourceListResult>;
479
+ getResourceDetail(resource: ResourceListItem): Promise<ResourceListItem>;
480
+ listFolders(parentId?: string | null): Promise<ResourceFolder[]>;
481
+ createFolder(name: string, parentId?: string | null): Promise<NgisFileFolder>;
482
+ renameFolder(folderId: string, name: string): Promise<NgisFileFolder>;
483
+ deleteFolder(folderId: string): Promise<void>;
484
+ moveFile(fileId: string, folderId: string | null): Promise<NgisFileRef>;
485
+ deleteFile(fileId: string, retentionDays?: number): Promise<void>;
486
+ restoreFile(fileId: string): Promise<void>;
487
+ getFileDeletionPreflight(fileId: string): Promise<FileDeletionPreflight>;
488
+ permanentlyDeleteFile(fileId: string): Promise<FileDetachSummary>;
489
+ cancelUpload(uploadId: string): Promise<void>;
490
+ copyToLibrary(fileId: string, folderId?: string | null): Promise<NgisFileRef>;
491
+ listGroups(): Promise<NgisUserGroup[]>;
492
+ listSharingPermissions(resourceId: string, resourceType?: SharingResourceType): Promise<NgisResourcePermission[]>;
493
+ grantSharingPermission(params: GrantSharingParams): Promise<NgisResourcePermission>;
494
+ revokeSharingPermission(resourceId: string, principalType: SharingPrincipalType, principalId?: string | null, resourceType?: SharingResourceType): Promise<void>;
495
+ republishSharingResource(resourceId: string, resourceType?: SharingResourceType): Promise<NgisSharedResource>;
496
+ retriggerDataset(fileId: string): Promise<void>;
497
+ getDataset(fileId: string): Promise<DatasetInfo>;
498
+ getDatasetBbox(fileId: string): Promise<DatasetBbox>;
499
+ getDatasetAttributeMeta(fileId: string): Promise<DatasetAttributeMeta>;
500
+ queryDatasetAttributes(fileId: string, params: DatasetAttributeQueryParams, signal?: AbortSignal): Promise<DatasetAttributeQueryResult>;
501
+ /** Exact count of rows matching `filter` (omit/`{}` → unfiltered total). */
502
+ countDatasetAttributes(fileId: string, filter?: DatasetAttributeFilter, signal?: AbortSignal): Promise<DatasetAttributeCountResult>;
503
+ /** Stream the selection as a CSV / GeoJSON file download. */
504
+ exportDatasetAttributes(fileId: string, params: ExportDatasetAttributesParams): Promise<ExportDatasetAttributesResult>;
505
+ /** Materialize the selection into a new derived dataset (import pipeline). */
506
+ subsetDatasetAttributes(fileId: string, selection: DatasetAttributeSelection): Promise<SubsetDatasetAttributesResult>;
507
+ getDatasetAttributeValues(fileId: string, field: string, limit?: number): Promise<DatasetAttributeValues>;
508
+ getDatasetAttributeStats(fileId: string, field: string): Promise<DatasetAttributeStats>;
509
+ classifyDatasetAttribute(fileId: string, params: ClassifyDatasetAttributeParams): Promise<DatasetAttributeClassifyResult>;
510
+ uploadFile(file: File, options?: UploadFileOptions): Promise<NgisFile>;
511
+ download(fileId: string, scope: ResourceScope): Promise<Response>;
512
+ };
513
+ export declare const storageQuotaApi: {
514
+ get(): Promise<StorageQuota>;
515
+ listApplications(page?: number, size?: number): Promise<PageResult<StorageQuotaApplication>>;
516
+ submitApplication(quotaSpace: StorageQuotaSpace, requestedQuotaBytes: number, reason: string): Promise<StorageQuotaApplication>;
517
+ getTrashSettings(): Promise<StorageTrashSettings>;
518
+ updateTrashSettings(retentionDays: number): Promise<StorageTrashSettings>;
519
+ cancelApplication(applicationId: string): Promise<StorageQuotaApplication>;
520
+ listAdminApplications(params?: {
521
+ status?: StorageQuotaApplicationStatus;
522
+ query?: string;
523
+ page?: number;
524
+ size?: number;
525
+ sort?: string;
526
+ }): Promise<PageResult<StorageQuotaAdminApplication>>;
527
+ getAdminApplication(applicationId: string): Promise<StorageQuotaApplicationDetail>;
528
+ approveApplication(applicationId: string, grantedQuotaBytes: number, reviewNote: string): Promise<StorageQuotaApplication>;
529
+ rejectApplication(applicationId: string, reviewNote: string): Promise<StorageQuotaApplication>;
530
+ };