@noatgnu/cupcake-vanilla 1.0.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.
package/index.d.ts ADDED
@@ -0,0 +1,1491 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { BaseApiService } from '@cupcake/core';
4
+
5
+ interface BaseTimestampedModel {
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ }
9
+ interface PaginatedResponse<T> {
10
+ count: number;
11
+ next?: string;
12
+ previous?: string;
13
+ results: T[];
14
+ }
15
+ interface ApiResponse<T = any> {
16
+ data?: T;
17
+ error?: any;
18
+ status: number;
19
+ success: boolean;
20
+ }
21
+ interface MetadataQueryParams {
22
+ page?: number;
23
+ pageSize?: number;
24
+ search?: string;
25
+ ordering?: string;
26
+ owner?: number;
27
+ labGroup?: number;
28
+ isPublished?: boolean;
29
+ includeLocked?: boolean;
30
+ }
31
+
32
+ declare enum OntologyType {
33
+ SPECIES = "species",
34
+ TISSUE = "tissue",
35
+ HUMAN_DISEASE = "human_disease",
36
+ SUBCELLULAR_LOCATION = "subcellular_location",
37
+ UNIMOD = "unimod",
38
+ NCBI_TAXONOMY = "ncbi_taxonomy",
39
+ MONDO = "mondo",
40
+ UBERON = "uberon",
41
+ CHEBI = "chebi",
42
+ CELL_ONTOLOGY = "cell_ontology",
43
+ MS_UNIQUE_VOCABULARIES = "ms_unique_vocabularies",
44
+ PSI_MS = "psi_ms"
45
+ }
46
+ declare const OntologyTypeLabels: Record<OntologyType, string>;
47
+ declare enum TemplatePermissionLevel {
48
+ READ = "read",
49
+ WRITE = "write",
50
+ ADMIN = "admin"
51
+ }
52
+ declare const TemplatePermissionLabels: Record<TemplatePermissionLevel, string>;
53
+
54
+ interface MetadataTable extends BaseTimestampedModel {
55
+ id: number;
56
+ name: string;
57
+ description?: string;
58
+ sampleCount: number;
59
+ version: string;
60
+ owner?: number;
61
+ ownerUsername?: string;
62
+ labGroup?: number;
63
+ labGroupName?: string;
64
+ isLocked: boolean;
65
+ isPublished: boolean;
66
+ visibility: 'private' | 'group' | 'public';
67
+ contentType?: number;
68
+ objectId?: number;
69
+ columns?: any[];
70
+ samplePools?: any[];
71
+ columnCount?: number;
72
+ sampleRange?: string;
73
+ canEdit?: boolean;
74
+ sourceApp?: string;
75
+ }
76
+ interface MetadataTableCreateRequest {
77
+ name: string;
78
+ description?: string;
79
+ sampleCount: number;
80
+ version?: string;
81
+ labGroup?: number;
82
+ isPublished?: boolean;
83
+ sourceApp?: string;
84
+ }
85
+ interface MetadataTableUpdateRequest {
86
+ name?: string;
87
+ description?: string;
88
+ sampleCount?: number;
89
+ version?: string;
90
+ isLocked?: boolean;
91
+ isPublished?: boolean;
92
+ }
93
+ interface MetadataTableQueryResponse {
94
+ count: number;
95
+ next?: string;
96
+ previous?: string;
97
+ results: MetadataTable[];
98
+ }
99
+
100
+ interface MetadataColumnModifier {
101
+ samples: string;
102
+ value: string;
103
+ }
104
+ interface MetadataColumn extends BaseTimestampedModel {
105
+ id: number;
106
+ metadataTable: number;
107
+ metadataTableName?: string;
108
+ template?: number;
109
+ templateName?: string;
110
+ name: string;
111
+ type: string;
112
+ columnPosition: number;
113
+ value?: string;
114
+ notApplicable: boolean;
115
+ mandatory: boolean;
116
+ hidden: boolean;
117
+ autoGenerated: boolean;
118
+ readonly: boolean;
119
+ modifiers: MetadataColumnModifier[];
120
+ ontologyType?: OntologyType;
121
+ ontologyOptions?: any;
122
+ suggestedValues: any[];
123
+ enableTypeahead: boolean;
124
+ possibleDefaultValues: any[];
125
+ staffOnly: boolean;
126
+ }
127
+ interface MetadataColumnCreateRequest {
128
+ metadataTable: number;
129
+ template?: number;
130
+ name: string;
131
+ type: string;
132
+ columnPosition?: number;
133
+ value?: string;
134
+ notApplicable?: boolean;
135
+ mandatory?: boolean;
136
+ hidden?: boolean;
137
+ autoGenerated?: boolean;
138
+ readonly?: boolean;
139
+ modifiers?: MetadataColumnModifier[];
140
+ ontologyType?: OntologyType;
141
+ ontologyOptions?: any;
142
+ enableTypeahead?: boolean;
143
+ staffOnly?: boolean;
144
+ }
145
+ interface MetadataColumnUpdateRequest {
146
+ name?: string;
147
+ type?: string;
148
+ columnPosition?: number;
149
+ value?: string;
150
+ notApplicable?: boolean;
151
+ mandatory?: boolean;
152
+ hidden?: boolean;
153
+ autoGenerated?: boolean;
154
+ readonly?: boolean;
155
+ modifiers?: MetadataColumnModifier[];
156
+ ontologyType?: OntologyType;
157
+ ontologyOptions?: any;
158
+ enableTypeahead?: boolean;
159
+ staffOnly?: boolean;
160
+ }
161
+
162
+ interface MetadataColumnTemplate extends BaseTimestampedModel {
163
+ id: number;
164
+ name: string;
165
+ description?: string;
166
+ columnName: string;
167
+ columnType: string;
168
+ defaultValue?: string;
169
+ defaultPosition?: number;
170
+ ontologyType?: string;
171
+ customOntologyFilters?: any;
172
+ enableTypeahead: boolean;
173
+ excelValidation?: any;
174
+ customValidationRules?: any;
175
+ apiEnhancements?: any;
176
+ visibility: string;
177
+ owner?: number;
178
+ ownerUsername?: string;
179
+ labGroup?: number;
180
+ labGroupName?: string;
181
+ isSystemTemplate: boolean;
182
+ isActive: boolean;
183
+ usageCount?: number;
184
+ tags?: string[];
185
+ category?: string;
186
+ lastUsedAt?: string;
187
+ canEdit?: boolean;
188
+ canDelete?: boolean;
189
+ }
190
+ interface MetadataColumnTemplateShare extends BaseTimestampedModel {
191
+ id: number;
192
+ template: number;
193
+ templateName?: string;
194
+ sharedWith: number;
195
+ sharedWithUsername?: string;
196
+ sharedBy: number;
197
+ sharedByUsername?: string;
198
+ canEdit: boolean;
199
+ }
200
+ interface MetadataColumnTemplateCreateRequest {
201
+ name: string;
202
+ description?: string;
203
+ columnName: string;
204
+ columnType: string;
205
+ defaultValue?: string;
206
+ defaultPosition?: number;
207
+ ontologyType?: string;
208
+ customOntologyFilters?: any;
209
+ enableTypeahead?: boolean;
210
+ excelValidation?: any;
211
+ customValidationRules?: any;
212
+ apiEnhancements?: any;
213
+ visibility?: string;
214
+ labGroup?: number;
215
+ tags?: string[];
216
+ category?: string;
217
+ }
218
+ interface MetadataColumnTemplateUpdateRequest {
219
+ name?: string;
220
+ description?: string;
221
+ columnName?: string;
222
+ columnType?: string;
223
+ defaultValue?: string;
224
+ defaultPosition?: number;
225
+ ontologyType?: string;
226
+ customOntologyFilters?: any;
227
+ enableTypeahead?: boolean;
228
+ excelValidation?: any;
229
+ customValidationRules?: any;
230
+ apiEnhancements?: any;
231
+ visibility?: string;
232
+ isActive?: boolean;
233
+ tags?: string[];
234
+ category?: string;
235
+ }
236
+ interface MetadataColumnTemplateShareCreateRequest {
237
+ template: number;
238
+ sharedWith: number;
239
+ canEdit?: boolean;
240
+ }
241
+
242
+ interface SamplePool extends BaseTimestampedModel {
243
+ id: number;
244
+ poolName: string;
245
+ poolDescription?: string;
246
+ pooledOnlySamples: number[];
247
+ pooledAndIndependentSamples: number[];
248
+ isReference: boolean;
249
+ sdrfValue?: string;
250
+ metadataTable: number;
251
+ metadataTableName?: string;
252
+ totalSamples?: number;
253
+ allSampleIndices?: number[];
254
+ metadataColumns: MetadataColumn[];
255
+ }
256
+ interface SamplePoolCreateRequest {
257
+ poolName: string;
258
+ poolDescription?: string;
259
+ pooledOnlySamples?: number[];
260
+ pooledAndIndependentSamples?: number[];
261
+ isReference?: boolean;
262
+ sdrfValue?: string;
263
+ metadataTable: number;
264
+ }
265
+ interface SamplePoolUpdateRequest {
266
+ poolName?: string;
267
+ poolDescription?: string;
268
+ pooledOnlySamples?: number[];
269
+ pooledAndIndependentSamples?: number[];
270
+ isReference?: boolean;
271
+ sdrfValue?: string;
272
+ }
273
+
274
+ interface MetadataTableTemplate extends BaseTimestampedModel {
275
+ id: number;
276
+ name: string;
277
+ description?: string;
278
+ owner?: number;
279
+ ownerUsername?: string;
280
+ labGroup?: number;
281
+ userColumns?: any[];
282
+ userColumnIds?: number[];
283
+ fieldMaskMapping?: any;
284
+ visibility?: string;
285
+ isDefault: boolean;
286
+ columnCount?: number;
287
+ }
288
+ interface MetadataTableTemplateCreateRequest {
289
+ name: string;
290
+ description?: string;
291
+ labGroup?: number;
292
+ userColumnIds?: number[];
293
+ fieldMaskMapping?: any;
294
+ visibility?: string;
295
+ isDefault?: boolean;
296
+ }
297
+ interface MetadataTableTemplateUpdateRequest {
298
+ name?: string;
299
+ description?: string;
300
+ userColumnIds?: number[];
301
+ fieldMaskMapping?: any;
302
+ visibility?: string;
303
+ isDefault?: boolean;
304
+ }
305
+ interface MetadataTableTemplateQueryResponse {
306
+ count: number;
307
+ next?: string;
308
+ previous?: string;
309
+ results: MetadataTableTemplate[];
310
+ }
311
+
312
+ interface FavouriteMetadataOption extends BaseTimestampedModel {
313
+ id: number;
314
+ name: string;
315
+ type: string;
316
+ columnTemplate?: number;
317
+ value: string;
318
+ displayValue?: string;
319
+ user?: number;
320
+ userUsername?: string;
321
+ labGroup?: number;
322
+ labGroupName?: string;
323
+ isGlobal: boolean;
324
+ }
325
+ interface FavouriteMetadataOptionCreateRequest {
326
+ name: string;
327
+ type: string;
328
+ columnTemplate?: number;
329
+ value: string;
330
+ displayValue?: string;
331
+ user?: number;
332
+ labGroup?: number;
333
+ isGlobal?: boolean;
334
+ }
335
+ interface FavouriteMetadataOptionUpdateRequest {
336
+ name?: string;
337
+ type?: string;
338
+ columnTemplate?: number;
339
+ value?: string;
340
+ displayValue?: string;
341
+ isGlobal?: boolean;
342
+ }
343
+
344
+ interface Species {
345
+ code: string;
346
+ taxon: string;
347
+ officialName: string;
348
+ commonName?: string;
349
+ synonym?: string;
350
+ }
351
+ interface Tissue {
352
+ identifier: string;
353
+ accession: string;
354
+ synonyms?: any;
355
+ crossReferences?: any;
356
+ }
357
+ interface HumanDisease {
358
+ identifier: string;
359
+ accession: string;
360
+ synonyms?: any;
361
+ crossReferences?: any;
362
+ }
363
+ interface SubcellularLocation {
364
+ identifier: string;
365
+ accession: string;
366
+ synonyms?: any;
367
+ crossReferences?: any;
368
+ }
369
+ interface MSUniqueVocabularies {
370
+ identifier: string;
371
+ accession: string;
372
+ synonyms?: any;
373
+ crossReferences?: any;
374
+ }
375
+ interface Unimod {
376
+ identifier: string;
377
+ accession: string;
378
+ synonyms?: any;
379
+ crossReferences?: any;
380
+ }
381
+ interface MondoDisease {
382
+ identifier: string;
383
+ accession: string;
384
+ synonyms?: any;
385
+ crossReferences?: any;
386
+ }
387
+ interface UberonAnatomy {
388
+ identifier: string;
389
+ accession: string;
390
+ synonyms?: any;
391
+ crossReferences?: any;
392
+ }
393
+ interface NCBITaxonomy {
394
+ identifier: string;
395
+ accession: string;
396
+ synonyms?: any;
397
+ crossReferences?: any;
398
+ }
399
+ interface ChEBICompound {
400
+ identifier: string;
401
+ accession: string;
402
+ synonyms?: any;
403
+ crossReferences?: any;
404
+ }
405
+ interface PSIMSOntology {
406
+ identifier: string;
407
+ accession: string;
408
+ synonyms?: any;
409
+ crossReferences?: any;
410
+ }
411
+ interface CellOntology {
412
+ identifier: string;
413
+ accession: string;
414
+ synonyms?: any;
415
+ crossReferences?: any;
416
+ }
417
+ interface Schema {
418
+ id: number;
419
+ name: string;
420
+ description?: string;
421
+ category?: string;
422
+ version?: string;
423
+ url?: string;
424
+ isActive: boolean;
425
+ columnsCount?: number;
426
+ }
427
+ interface OntologySuggestion {
428
+ id: string;
429
+ value: string;
430
+ display_name: string;
431
+ description?: string;
432
+ ontology_type: string;
433
+ full_data?: any;
434
+ }
435
+ interface OntologySuggestionResponse {
436
+ count: number;
437
+ next?: string;
438
+ previous?: string;
439
+ results: OntologySuggestion[];
440
+ }
441
+
442
+ interface UnimodSpecification {
443
+ accession: string;
444
+ name: string;
445
+ definition: string;
446
+ additional_data: Array<{
447
+ id: string;
448
+ description: string;
449
+ }>;
450
+ general_properties: Record<string, string>;
451
+ specifications: Record<string, UnimodSpecification>;
452
+ delta_mono_mass: string;
453
+ delta_avge_mass: string;
454
+ delta_composition: string;
455
+ [key: string]: any;
456
+ }
457
+ interface UnimodFullData {
458
+ accession: string;
459
+ name: string;
460
+ definition: string;
461
+ additional_data: Array<{
462
+ id: string;
463
+ description: string;
464
+ }>;
465
+ general_properties: Record<string, string>;
466
+ specifications: Record<string, UnimodSpecification>;
467
+ delta_mono_mass: string;
468
+ delta_avge_mass: string;
469
+ delta_composition: string;
470
+ [key: string]: any;
471
+ }
472
+ declare function isUnimodFullData(suggestion: any): suggestion is {
473
+ full_data: UnimodFullData;
474
+ };
475
+ declare class OntologyUtils {
476
+ static getUnimodSpecifications(suggestion: any): (UnimodSpecification & {
477
+ specNumber: string;
478
+ })[];
479
+ static getActiveUnimodSpecifications(suggestion: any): (UnimodSpecification & {
480
+ specNumber: string;
481
+ })[];
482
+ static formatUnimodName(data: UnimodFullData): string;
483
+ }
484
+
485
+ type TaskStatus = 'QUEUED' | 'STARTED' | 'SUCCESS' | 'FAILURE' | 'CANCELLED';
486
+ type TaskType = 'EXPORT_EXCEL' | 'EXPORT_SDRF' | 'IMPORT_SDRF' | 'IMPORT_EXCEL' | 'EXPORT_MULTIPLE_SDRF' | 'EXPORT_MULTIPLE_EXCEL' | 'VALIDATE_TABLE';
487
+ interface AsyncTaskStatus {
488
+ id: string;
489
+ taskType: TaskType;
490
+ status: TaskStatus;
491
+ user: number;
492
+ userUsername?: string;
493
+ metadataTable?: number;
494
+ metadataTableName?: string;
495
+ taskTypeDisplay?: string;
496
+ statusDisplay?: string;
497
+ parameters?: any;
498
+ result?: any;
499
+ errorMessage?: string;
500
+ traceback?: string;
501
+ createdAt: string;
502
+ startedAt?: string;
503
+ completedAt?: string;
504
+ rqJobId?: string;
505
+ queueName?: string;
506
+ progressCurrent?: number;
507
+ progressTotal?: number;
508
+ progressDescription?: string;
509
+ duration?: number;
510
+ progressPercentage?: number;
511
+ }
512
+ interface TaskListItem {
513
+ id: string;
514
+ taskType: TaskType;
515
+ taskTypeDisplay: string;
516
+ status: TaskStatus;
517
+ statusDisplay: string;
518
+ user: number;
519
+ userUsername: string;
520
+ metadataTable: number | null;
521
+ metadataTableName: string | null;
522
+ progressPercentage: number;
523
+ progressDescription: string;
524
+ createdAt: string;
525
+ startedAt: string | null;
526
+ completedAt: string | null;
527
+ duration: number | null;
528
+ errorMessage: string | null;
529
+ }
530
+ interface TaskResult {
531
+ id: number;
532
+ task: string;
533
+ file?: string;
534
+ fileName?: string;
535
+ contentType?: string;
536
+ fileSize?: number;
537
+ expiresAt: string;
538
+ downloadCount?: number;
539
+ lastDownloadedAt?: string;
540
+ createdAt: string;
541
+ }
542
+ interface MetadataExportRequest {
543
+ metadataTableId: number;
544
+ includePools?: boolean;
545
+ metadataColumnIds?: number[];
546
+ sampleNumber?: number;
547
+ exportFormat?: string;
548
+ labGroupIds?: number[];
549
+ }
550
+ interface BulkExportRequest {
551
+ metadataTableIds: number[];
552
+ includePools?: boolean;
553
+ validateSdrf?: boolean;
554
+ }
555
+ interface BulkExcelExportRequest extends BulkExportRequest {
556
+ metadataColumnIds?: number[];
557
+ labGroupIds?: number[];
558
+ }
559
+ interface MetadataImportRequest {
560
+ metadataTableId: number;
561
+ file: File;
562
+ replaceExisting?: boolean;
563
+ validateOntologies?: boolean;
564
+ }
565
+ interface MetadataValidationRequest {
566
+ metadataTableId: number;
567
+ validateSdrfFormat?: boolean;
568
+ includePools?: boolean;
569
+ }
570
+ interface MetadataValidationConfig {
571
+ metadataTableId: number;
572
+ metadataTableName: string;
573
+ }
574
+ interface AsyncTaskCreateResponse {
575
+ taskId: string;
576
+ message: string;
577
+ }
578
+ interface DownloadUrlResponse {
579
+ downloadUrl: string;
580
+ filename: string;
581
+ contentType: string;
582
+ fileSize: number;
583
+ expiresAt: string;
584
+ expiresInHours: number;
585
+ }
586
+ interface AsyncTaskQueryParams {
587
+ taskType?: string;
588
+ status?: string;
589
+ metadataTable?: number;
590
+ search?: string;
591
+ limit?: number;
592
+ offset?: number;
593
+ ordering?: string;
594
+ }
595
+ declare const TASK_TYPE_LABELS: Record<TaskType, string>;
596
+ declare const TASK_STATUS_LABELS: Record<TaskStatus, string>;
597
+ declare const TASK_STATUS_COLORS: Record<TaskStatus, string>;
598
+
599
+ interface ChunkedUploadStatus {
600
+ id: string;
601
+ file?: File;
602
+ filename?: string;
603
+ offset: number;
604
+ createdAt: string;
605
+ status: 'INCOMPLETE' | 'COMPLETE';
606
+ completedAt?: string;
607
+ originalFilename?: string;
608
+ mimeType?: string;
609
+ fileSize?: number;
610
+ uploadSessionId?: string;
611
+ checksum?: string;
612
+ }
613
+ interface ChunkedUploadRequest {
614
+ file: File;
615
+ filename?: string;
616
+ uploadSessionId?: string;
617
+ metadataTableId?: number;
618
+ createPools?: boolean;
619
+ replaceExisting?: boolean;
620
+ }
621
+ interface ChunkedUploadResponse {
622
+ id: string;
623
+ filename: string;
624
+ offset: number;
625
+ expires: string;
626
+ url?: string;
627
+ checksum?: string;
628
+ }
629
+ interface ChunkedUploadCompletionRequest {
630
+ sha256: string;
631
+ metadataTableId?: number;
632
+ createPools?: boolean;
633
+ replaceExisting?: boolean;
634
+ }
635
+ interface ChunkedUploadCompletionResponse {
636
+ message: string;
637
+ filename?: string;
638
+ warning?: string;
639
+ error?: string;
640
+ createdColumns?: number;
641
+ createdPools?: number;
642
+ sampleRows?: number;
643
+ metadataColumns?: Array<{
644
+ id: number;
645
+ name: string;
646
+ type: string;
647
+ position: number;
648
+ }>;
649
+ samplePools?: Array<{
650
+ id: number;
651
+ name: string;
652
+ totalSamples: number;
653
+ isReference: boolean;
654
+ }>;
655
+ }
656
+
657
+ interface MetadataTableQueryParams {
658
+ search?: string;
659
+ ownerId?: number;
660
+ labGroupId?: number;
661
+ isPublished?: boolean;
662
+ isLocked?: boolean;
663
+ showShared?: boolean;
664
+ limit?: number;
665
+ offset?: number;
666
+ ordering?: string;
667
+ }
668
+ declare class MetadataTableService extends BaseApiService {
669
+ /**
670
+ * Get all metadata tables with optional filtering
671
+ */
672
+ getMetadataTables(params?: MetadataTableQueryParams): Observable<MetadataTableQueryResponse>;
673
+ /**
674
+ * Get a single metadata table by ID
675
+ */
676
+ getMetadataTable(id: number): Observable<MetadataTable>;
677
+ /**
678
+ * Create a new metadata table
679
+ */
680
+ createMetadataTable(table: MetadataTableCreateRequest): Observable<MetadataTable>;
681
+ /**
682
+ * Update an existing metadata table
683
+ */
684
+ updateMetadataTable(id: number, table: MetadataTableUpdateRequest): Observable<MetadataTable>;
685
+ /**
686
+ * Partially update a metadata table
687
+ */
688
+ patchMetadataTable(id: number, table: Partial<MetadataTableUpdateRequest>): Observable<MetadataTable>;
689
+ /**
690
+ * Delete a metadata table
691
+ */
692
+ deleteMetadataTable(id: number): Observable<void>;
693
+ /**
694
+ * Add a column to the metadata table
695
+ */
696
+ addColumn(id: number, columnData: any, position?: number): Observable<{
697
+ message: string;
698
+ column: MetadataColumn;
699
+ }>;
700
+ /**
701
+ * Add a column with automatic reordering
702
+ */
703
+ addColumnWithAutoReorder(id: number, request: {
704
+ columnData: any;
705
+ }): Observable<{
706
+ message: string;
707
+ column: MetadataColumn;
708
+ reordered: boolean;
709
+ schemaIdsUsed: number[];
710
+ }>;
711
+ /**
712
+ * Remove a column from the metadata table
713
+ */
714
+ removeColumn(id: number, columnId: number): Observable<{
715
+ message: string;
716
+ }>;
717
+ /**
718
+ * Reorder a column in the metadata table
719
+ */
720
+ reorderColumn(id: number, columnId: number, newPosition: number): Observable<{
721
+ message: string;
722
+ }>;
723
+ /**
724
+ * Normalize column positions
725
+ */
726
+ normalizeColumnPositions(id: number): Observable<{
727
+ message: string;
728
+ }>;
729
+ /**
730
+ * Get all tables (admin only)
731
+ */
732
+ getAdminAllTables(): Observable<MetadataTable[]>;
733
+ /**
734
+ * Search metadata tables
735
+ */
736
+ searchMetadataTables(query: string): Observable<MetadataTableQueryResponse>;
737
+ /**
738
+ * Get metadata tables by owner
739
+ */
740
+ getMetadataTablesByOwner(ownerId: number): Observable<MetadataTableQueryResponse>;
741
+ /**
742
+ * Get shared metadata tables
743
+ */
744
+ getSharedMetadataTables(): Observable<MetadataTableQueryResponse>;
745
+ /**
746
+ * Combine columns column-wise
747
+ */
748
+ combineColumnwise(request: {
749
+ columnIds: number[];
750
+ }): Observable<{
751
+ message: string;
752
+ combinedColumn: any;
753
+ }>;
754
+ /**
755
+ * Combine columns row-wise
756
+ */
757
+ combineRowwise(request: {
758
+ columnIds: number[];
759
+ }): Observable<{
760
+ message: string;
761
+ combinedColumn: any;
762
+ }>;
763
+ static ɵfac: i0.ɵɵFactoryDeclaration<MetadataTableService, never>;
764
+ static ɵprov: i0.ɵɵInjectableDeclaration<MetadataTableService>;
765
+ }
766
+
767
+ interface MetadataColumnQueryParams {
768
+ search?: string;
769
+ metadataTableId?: number;
770
+ type?: string;
771
+ name?: string;
772
+ hidden?: boolean;
773
+ mandatory?: boolean;
774
+ limit?: number;
775
+ offset?: number;
776
+ ordering?: string;
777
+ }
778
+ declare class MetadataColumnService extends BaseApiService {
779
+ /**
780
+ * Get all metadata columns with optional filtering
781
+ */
782
+ getMetadataColumns(params?: MetadataColumnQueryParams): Observable<PaginatedResponse<MetadataColumn>>;
783
+ /**
784
+ * Get a single metadata column by ID
785
+ */
786
+ getMetadataColumn(id: number): Observable<MetadataColumn>;
787
+ /**
788
+ * Create a new metadata column
789
+ */
790
+ createMetadataColumn(column: MetadataColumnCreateRequest): Observable<MetadataColumn>;
791
+ /**
792
+ * Update an existing metadata column
793
+ */
794
+ updateMetadataColumn(id: number, column: MetadataColumnUpdateRequest): Observable<MetadataColumn>;
795
+ /**
796
+ * Partially update a metadata column
797
+ */
798
+ patchMetadataColumn(id: number, column: Partial<MetadataColumnUpdateRequest>): Observable<MetadataColumn>;
799
+ /**
800
+ * Delete a metadata column
801
+ */
802
+ deleteMetadataColumn(id: number): Observable<void>;
803
+ /**
804
+ * Bulk create metadata columns
805
+ */
806
+ bulkCreate(request: {
807
+ columns: MetadataColumnCreateRequest[];
808
+ }): Observable<MetadataColumn[]>;
809
+ /**
810
+ * Validate SDRF data
811
+ */
812
+ validateSdrfData(request: {
813
+ metadataIds: number[];
814
+ sampleNumber?: number;
815
+ }): Observable<{
816
+ valid: boolean;
817
+ errors: any[];
818
+ sampleCount: number;
819
+ }>;
820
+ /**
821
+ * Get ontology suggestions for a column
822
+ */
823
+ getOntologySuggestions(params: {
824
+ columnId: number;
825
+ search?: string;
826
+ limit?: number;
827
+ searchType?: 'icontains' | 'istartswith' | 'exact';
828
+ }): Observable<{
829
+ ontologyType: string;
830
+ suggestions: OntologySuggestion[];
831
+ searchTerm: string;
832
+ searchType: string;
833
+ limit: number;
834
+ count: number;
835
+ customFilters: any;
836
+ hasMore: boolean;
837
+ }>;
838
+ /**
839
+ * Validate value against column's ontology
840
+ */
841
+ validateValue(id: number, request: {
842
+ value: string;
843
+ }): Observable<{
844
+ valid: boolean;
845
+ value: string;
846
+ ontologyType: string;
847
+ suggestions?: any[];
848
+ }>;
849
+ /**
850
+ * Update column value with automatic modifier calculation
851
+ */
852
+ updateColumnValue(id: number, request: {
853
+ value: string;
854
+ sampleIndices?: number[];
855
+ valueType?: 'default' | 'sample_specific' | 'replace_all';
856
+ }): Observable<{
857
+ message: string;
858
+ column: MetadataColumn;
859
+ changes: any;
860
+ valueType: string;
861
+ }>;
862
+ /**
863
+ * Apply automatic ontology mapping to a column
864
+ */
865
+ applyOntologyMapping(id: number): Observable<{
866
+ applied: boolean;
867
+ ontologyType: string;
868
+ message: string;
869
+ }>;
870
+ /**
871
+ * Detect ontology type for given column name and type
872
+ */
873
+ detectOntologyType(params: {
874
+ name: string;
875
+ type: string;
876
+ }): Observable<{
877
+ columnName: string;
878
+ columnType: string;
879
+ detectedOntologyType: string;
880
+ }>;
881
+ static ɵfac: i0.ɵɵFactoryDeclaration<MetadataColumnService, never>;
882
+ static ɵprov: i0.ɵɵInjectableDeclaration<MetadataColumnService>;
883
+ }
884
+
885
+ interface SamplePoolQueryParams {
886
+ search?: string;
887
+ metadataTable?: number;
888
+ isReference?: boolean;
889
+ limit?: number;
890
+ offset?: number;
891
+ ordering?: string;
892
+ }
893
+ declare class SamplePoolService extends BaseApiService {
894
+ /**
895
+ * Get all sample pools with optional filtering
896
+ */
897
+ getSamplePools(params?: SamplePoolQueryParams): Observable<PaginatedResponse<SamplePool>>;
898
+ /**
899
+ * Get a single sample pool by ID
900
+ */
901
+ getSamplePool(id: number): Observable<SamplePool>;
902
+ /**
903
+ * Create a new sample pool
904
+ */
905
+ createSamplePool(pool: SamplePoolCreateRequest): Observable<SamplePool>;
906
+ /**
907
+ * Update an existing sample pool
908
+ */
909
+ updateSamplePool(id: number, pool: SamplePoolUpdateRequest): Observable<SamplePool>;
910
+ /**
911
+ * Partially update a sample pool
912
+ */
913
+ patchSamplePool(id: number, pool: Partial<SamplePoolUpdateRequest>): Observable<SamplePool>;
914
+ /**
915
+ * Delete a sample pool
916
+ */
917
+ deleteSamplePool(id: number): Observable<void>;
918
+ /**
919
+ * Get metadata columns associated with this pool
920
+ */
921
+ getMetadataColumns(id: number): Observable<MetadataColumn[]>;
922
+ static ɵfac: i0.ɵɵFactoryDeclaration<SamplePoolService, never>;
923
+ static ɵprov: i0.ɵɵInjectableDeclaration<SamplePoolService>;
924
+ }
925
+
926
+ interface MetadataTableTemplateQueryParams {
927
+ search?: string;
928
+ ownerId?: number;
929
+ labGroupId?: number;
930
+ visibility?: string;
931
+ isDefault?: boolean;
932
+ limit?: number;
933
+ offset?: number;
934
+ ordering?: string;
935
+ }
936
+ declare class MetadataTableTemplateService extends BaseApiService {
937
+ /**
938
+ * Get all metadata table templates with optional filtering
939
+ */
940
+ getMetadataTableTemplates(params?: MetadataTableTemplateQueryParams): Observable<MetadataTableTemplateQueryResponse>;
941
+ /**
942
+ * Get a single metadata table template by ID
943
+ */
944
+ getMetadataTableTemplate(id: number): Observable<MetadataTableTemplate>;
945
+ /**
946
+ * Create a new metadata table template
947
+ */
948
+ createMetadataTableTemplate(template: MetadataTableTemplateCreateRequest): Observable<MetadataTableTemplate>;
949
+ /**
950
+ * Update an existing metadata table template
951
+ */
952
+ updateMetadataTableTemplate(id: number, template: MetadataTableTemplateUpdateRequest): Observable<MetadataTableTemplate>;
953
+ /**
954
+ * Partially update a metadata table template
955
+ */
956
+ patchMetadataTableTemplate(id: number, template: Partial<MetadataTableTemplateUpdateRequest>): Observable<MetadataTableTemplate>;
957
+ /**
958
+ * Delete a metadata table template
959
+ */
960
+ deleteMetadataTableTemplate(id: number): Observable<void>;
961
+ /**
962
+ * Add a column to the template
963
+ */
964
+ addColumn(id: number, request: {
965
+ column_data: any;
966
+ position?: number;
967
+ }): Observable<{
968
+ message: string;
969
+ column: MetadataColumn;
970
+ }>;
971
+ /**
972
+ * Remove a column from the template
973
+ */
974
+ removeColumn(id: number, request: {
975
+ column_id: number;
976
+ }): Observable<{
977
+ message: string;
978
+ }>;
979
+ /**
980
+ * Reorder a column within the template
981
+ */
982
+ reorderColumn(id: number, request: {
983
+ column_id: number;
984
+ new_position: number;
985
+ }): Observable<{
986
+ message: string;
987
+ }>;
988
+ /**
989
+ * Add a column with automatic reordering
990
+ */
991
+ addColumnWithAutoReorder(id: number, request: {
992
+ columnData: any;
993
+ }): Observable<{
994
+ message: string;
995
+ column: MetadataColumn;
996
+ reordered: boolean;
997
+ schemaIdsUsed: number[];
998
+ }>;
999
+ /**
1000
+ * Duplicate a column within the template
1001
+ */
1002
+ duplicateColumn(id: number, request: {
1003
+ column_id: number;
1004
+ }): Observable<{
1005
+ message: string;
1006
+ duplicated_column: MetadataColumn;
1007
+ }>;
1008
+ /**
1009
+ * Normalize column positions
1010
+ */
1011
+ normalizeColumnPositions(id: number): Observable<{
1012
+ message: string;
1013
+ }>;
1014
+ /**
1015
+ * Apply this template to a metadata table
1016
+ */
1017
+ applyToMetadataTable(id: number, request: {
1018
+ metadata_table_id: number;
1019
+ }): Observable<{
1020
+ message: string;
1021
+ applied_columns: MetadataColumn[];
1022
+ }>;
1023
+ /**
1024
+ * Update field mask for template
1025
+ */
1026
+ updateFieldMask(id: number, request: {
1027
+ field_mask: any;
1028
+ }): Observable<{
1029
+ message: string;
1030
+ field_mask: any;
1031
+ }>;
1032
+ /**
1033
+ * Get field mask for template
1034
+ */
1035
+ getFieldMask(id: number): Observable<{
1036
+ field_mask: any;
1037
+ }>;
1038
+ /**
1039
+ * Get columns with field masks
1040
+ */
1041
+ getColumnsWithFieldMasks(id: number): Observable<{
1042
+ columns: any[];
1043
+ }>;
1044
+ /**
1045
+ * Get available schemas for creating templates
1046
+ */
1047
+ getAvailableSchemas(): Observable<Schema[]>;
1048
+ /**
1049
+ * Create a new template from schema definitions
1050
+ */
1051
+ createFromSchema(request: {
1052
+ schemaIds: number[];
1053
+ name: string;
1054
+ description?: string;
1055
+ }): Observable<{
1056
+ message: string;
1057
+ template: MetadataTableTemplate;
1058
+ }>;
1059
+ /**
1060
+ * Create a new metadata table from an existing template
1061
+ */
1062
+ createTableFromTemplate(request: {
1063
+ templateId: number;
1064
+ name: string;
1065
+ description?: string;
1066
+ sampleCount: number;
1067
+ }): Observable<{
1068
+ message: string;
1069
+ table: MetadataTable;
1070
+ }>;
1071
+ /**
1072
+ * Create a new metadata table directly from schema definitions
1073
+ */
1074
+ createTableFromSchemas(request: {
1075
+ schemaIds: number[];
1076
+ name: string;
1077
+ description?: string;
1078
+ sampleCount: number;
1079
+ }): Observable<{
1080
+ message: string;
1081
+ table: MetadataTable;
1082
+ }>;
1083
+ static ɵfac: i0.ɵɵFactoryDeclaration<MetadataTableTemplateService, never>;
1084
+ static ɵprov: i0.ɵɵInjectableDeclaration<MetadataTableTemplateService>;
1085
+ }
1086
+
1087
+ interface FavouriteMetadataOptionQueryParams {
1088
+ search?: string;
1089
+ type?: string;
1090
+ userId?: number;
1091
+ labGroupId?: number;
1092
+ isGlobal?: boolean;
1093
+ limit?: number;
1094
+ offset?: number;
1095
+ ordering?: string;
1096
+ }
1097
+ declare class FavouriteMetadataOptionService extends BaseApiService {
1098
+ /**
1099
+ * Get all favourite metadata options with optional filtering
1100
+ */
1101
+ getFavouriteMetadataOptions(params?: FavouriteMetadataOptionQueryParams): Observable<PaginatedResponse<FavouriteMetadataOption>>;
1102
+ /**
1103
+ * Get a single favourite metadata option by ID
1104
+ */
1105
+ getFavouriteMetadataOption(id: number): Observable<FavouriteMetadataOption>;
1106
+ /**
1107
+ * Create a new favourite metadata option
1108
+ */
1109
+ createFavouriteMetadataOption(option: FavouriteMetadataOptionCreateRequest): Observable<FavouriteMetadataOption>;
1110
+ /**
1111
+ * Update an existing favourite metadata option
1112
+ */
1113
+ updateFavouriteMetadataOption(id: number, option: FavouriteMetadataOptionUpdateRequest): Observable<FavouriteMetadataOption>;
1114
+ /**
1115
+ * Partially update a favourite metadata option
1116
+ */
1117
+ patchFavouriteMetadataOption(id: number, option: Partial<FavouriteMetadataOptionUpdateRequest>): Observable<FavouriteMetadataOption>;
1118
+ /**
1119
+ * Delete a favourite metadata option
1120
+ */
1121
+ deleteFavouriteMetadataOption(id: number): Observable<void>;
1122
+ static ɵfac: i0.ɵɵFactoryDeclaration<FavouriteMetadataOptionService, never>;
1123
+ static ɵprov: i0.ɵɵInjectableDeclaration<FavouriteMetadataOptionService>;
1124
+ }
1125
+
1126
+ interface MetadataColumnTemplateQueryParams {
1127
+ search?: string;
1128
+ type?: string;
1129
+ ontologyType?: string;
1130
+ isRequired?: boolean;
1131
+ isPublic?: boolean;
1132
+ ownerId?: number;
1133
+ labGroupId?: number;
1134
+ visibility?: string;
1135
+ isActive?: boolean;
1136
+ limit?: number;
1137
+ offset?: number;
1138
+ ordering?: string;
1139
+ }
1140
+ declare class MetadataColumnTemplateService extends BaseApiService {
1141
+ /**
1142
+ * Get all metadata column templates with optional filtering
1143
+ */
1144
+ getMetadataColumnTemplates(params?: MetadataColumnTemplateQueryParams): Observable<PaginatedResponse<MetadataColumnTemplate>>;
1145
+ /**
1146
+ * Get a single metadata column template by ID
1147
+ */
1148
+ getMetadataColumnTemplate(id: number): Observable<MetadataColumnTemplate>;
1149
+ /**
1150
+ * Create a new metadata column template
1151
+ */
1152
+ createMetadataColumnTemplate(template: MetadataColumnTemplateCreateRequest): Observable<MetadataColumnTemplate>;
1153
+ /**
1154
+ * Update an existing metadata column template
1155
+ */
1156
+ updateMetadataColumnTemplate(id: number, template: MetadataColumnTemplateUpdateRequest): Observable<MetadataColumnTemplate>;
1157
+ /**
1158
+ * Partially update a metadata column template
1159
+ */
1160
+ patchMetadataColumnTemplate(id: number, template: Partial<MetadataColumnTemplateUpdateRequest>): Observable<MetadataColumnTemplate>;
1161
+ /**
1162
+ * Delete a metadata column template
1163
+ */
1164
+ deleteMetadataColumnTemplate(id: number): Observable<void>;
1165
+ /**
1166
+ * Create a MetadataColumn from this template
1167
+ */
1168
+ createMetadataColumn(id: number, request: {
1169
+ metadataTableId: number;
1170
+ columnPosition?: number;
1171
+ }): Observable<{
1172
+ message: string;
1173
+ column: MetadataColumn;
1174
+ }>;
1175
+ /**
1176
+ * Share this template with another user
1177
+ */
1178
+ shareTemplate(id: number, request: {
1179
+ userId: number;
1180
+ canEdit?: boolean;
1181
+ }): Observable<{
1182
+ message: string;
1183
+ }>;
1184
+ /**
1185
+ * Remove template sharing for a user
1186
+ */
1187
+ unshareTemplate(id: number, request: {
1188
+ userId: number;
1189
+ }): Observable<{
1190
+ message: string;
1191
+ }>;
1192
+ /**
1193
+ * Get templates created by the current user
1194
+ */
1195
+ getMyTemplates(): Observable<MetadataColumnTemplate[]>;
1196
+ /**
1197
+ * Get most popular public templates
1198
+ */
1199
+ getPopularTemplates(): Observable<MetadataColumnTemplate[]>;
1200
+ /**
1201
+ * Get ontology suggestions for this column template
1202
+ */
1203
+ getOntologySuggestions(params?: {
1204
+ search?: string;
1205
+ templateId?: number;
1206
+ limit?: number;
1207
+ searchType?: 'icontains' | 'istartswith' | 'exact';
1208
+ }): Observable<{
1209
+ ontologyType: string;
1210
+ suggestions: OntologySuggestion[];
1211
+ searchTerm: string;
1212
+ searchType: string;
1213
+ limit: number;
1214
+ count: number;
1215
+ customFilters: any;
1216
+ hasMore: boolean;
1217
+ }>;
1218
+ static ɵfac: i0.ɵɵFactoryDeclaration<MetadataColumnTemplateService, never>;
1219
+ static ɵprov: i0.ɵɵInjectableDeclaration<MetadataColumnTemplateService>;
1220
+ }
1221
+
1222
+ interface MetadataColumnTemplateShareQueryParams {
1223
+ template?: number;
1224
+ sharedWith?: number;
1225
+ sharedBy?: number;
1226
+ canEdit?: boolean;
1227
+ limit?: number;
1228
+ offset?: number;
1229
+ ordering?: string;
1230
+ }
1231
+ declare class MetadataColumnTemplateShareService extends BaseApiService {
1232
+ /**
1233
+ * Get all template shares with optional filtering
1234
+ */
1235
+ getMetadataColumnTemplateShares(params?: MetadataColumnTemplateShareQueryParams): Observable<PaginatedResponse<MetadataColumnTemplateShare>>;
1236
+ /**
1237
+ * Get a single template share by ID
1238
+ */
1239
+ getMetadataColumnTemplateShare(id: number): Observable<MetadataColumnTemplateShare>;
1240
+ /**
1241
+ * Create a new template share
1242
+ */
1243
+ createMetadataColumnTemplateShare(share: MetadataColumnTemplateShareCreateRequest): Observable<MetadataColumnTemplateShare>;
1244
+ /**
1245
+ * Update an existing template share
1246
+ */
1247
+ updateMetadataColumnTemplateShare(id: number, share: {
1248
+ canEdit?: boolean;
1249
+ }): Observable<MetadataColumnTemplateShare>;
1250
+ /**
1251
+ * Delete a template share
1252
+ */
1253
+ deleteMetadataColumnTemplateShare(id: number): Observable<void>;
1254
+ static ɵfac: i0.ɵɵFactoryDeclaration<MetadataColumnTemplateShareService, never>;
1255
+ static ɵprov: i0.ɵɵInjectableDeclaration<MetadataColumnTemplateShareService>;
1256
+ }
1257
+
1258
+ declare class MetadataManagementService extends BaseApiService {
1259
+ /**
1260
+ * Export metadata as Excel template (matching original CUPCAKE)
1261
+ */
1262
+ exportExcelTemplate(request: any): Observable<Blob>;
1263
+ /**
1264
+ * Import metadata from SDRF file with intelligent column matching and schema organization
1265
+ */
1266
+ importSdrfFile(file: File, additionalData?: any): Observable<any>;
1267
+ /**
1268
+ * Import metadata from Excel file (matching original CUPCAKE)
1269
+ */
1270
+ importExcelFile(file: File, additionalData?: any): Observable<any>;
1271
+ /**
1272
+ * Collect metadata from metadata table
1273
+ */
1274
+ collectMetadata(params: any): Observable<any>;
1275
+ /**
1276
+ * Export metadata as SDRF file (matching original CUPCAKE)
1277
+ */
1278
+ exportSdrfFile(request: any): Observable<Blob>;
1279
+ static ɵfac: i0.ɵɵFactoryDeclaration<MetadataManagementService, never>;
1280
+ static ɵprov: i0.ɵɵInjectableDeclaration<MetadataManagementService>;
1281
+ }
1282
+
1283
+ declare class OntologySearchService extends BaseApiService {
1284
+ /**
1285
+ * Get ontology suggestions across all sources for SDRF validation
1286
+ */
1287
+ suggest(params?: {
1288
+ query?: string;
1289
+ sources?: string[];
1290
+ }): Observable<OntologySuggestion[]>;
1291
+ static ɵfac: i0.ɵɵFactoryDeclaration<OntologySearchService, never>;
1292
+ static ɵprov: i0.ɵɵInjectableDeclaration<OntologySearchService>;
1293
+ }
1294
+
1295
+ interface SchemaQueryParams {
1296
+ search?: string;
1297
+ category?: string;
1298
+ isActive?: boolean;
1299
+ limit?: number;
1300
+ offset?: number;
1301
+ ordering?: string;
1302
+ }
1303
+ declare class SchemaService extends BaseApiService {
1304
+ /**
1305
+ * Get all schemas with optional filtering
1306
+ */
1307
+ getSchemas(params?: SchemaQueryParams): Observable<PaginatedResponse<Schema>>;
1308
+ /**
1309
+ * Get a single schema by ID
1310
+ */
1311
+ getSchema(id: number): Observable<Schema>;
1312
+ /**
1313
+ * Get list of available schemas for creating templates
1314
+ */
1315
+ getAvailableSchemas(): Observable<Schema[]>;
1316
+ /**
1317
+ * Sync builtin schemas from sdrf-pipelines package (admin only)
1318
+ */
1319
+ syncBuiltin(): Observable<{
1320
+ message: string;
1321
+ synced_count: number;
1322
+ }>;
1323
+ static ɵfac: i0.ɵɵFactoryDeclaration<SchemaService, never>;
1324
+ static ɵprov: i0.ɵɵInjectableDeclaration<SchemaService>;
1325
+ }
1326
+
1327
+ declare class SDRFDefaultsService extends BaseApiService {
1328
+ /**
1329
+ * Get all available SDRF columns with their default values
1330
+ */
1331
+ getColumns(): Observable<any[]>;
1332
+ /**
1333
+ * Get default values for a specific column
1334
+ */
1335
+ getColumnValues(params: {
1336
+ column: string;
1337
+ }): Observable<any[]>;
1338
+ /**
1339
+ * Search for columns containing the query string
1340
+ */
1341
+ searchColumns(params: {
1342
+ query: string;
1343
+ }): Observable<any[]>;
1344
+ /**
1345
+ * Get options for structured fields (key-value pairs)
1346
+ */
1347
+ getStructuredOptions(params: {
1348
+ field: string;
1349
+ }): Observable<any[]>;
1350
+ /**
1351
+ * Get all label options (TMT, SILAC, label-free)
1352
+ */
1353
+ getLabels(): Observable<any[]>;
1354
+ /**
1355
+ * Get protein modification options (fixed and variable)
1356
+ */
1357
+ getModifications(): Observable<any[]>;
1358
+ /**
1359
+ * Get list of common instrument models
1360
+ */
1361
+ getInstruments(): Observable<any[]>;
1362
+ /**
1363
+ * Get cleavage agent options
1364
+ */
1365
+ getCleavageAgents(): Observable<any[]>;
1366
+ /**
1367
+ * Get all compound fields that require special handling
1368
+ */
1369
+ getCompoundFields(): Observable<any[]>;
1370
+ /**
1371
+ * Get schema for a specific compound field
1372
+ */
1373
+ getCompoundSchema(params: {
1374
+ field: string;
1375
+ }): Observable<any>;
1376
+ /**
1377
+ * Validate a compound field value against its schema
1378
+ */
1379
+ validateCompound(request: {
1380
+ field: string;
1381
+ value: any;
1382
+ }): Observable<{
1383
+ valid: boolean;
1384
+ errors?: string[];
1385
+ }>;
1386
+ /**
1387
+ * Get column name suggestions based on partial input
1388
+ */
1389
+ getSuggestions(params: {
1390
+ query: string;
1391
+ }): Observable<string[]>;
1392
+ /**
1393
+ * Get quick access to commonly used value categories
1394
+ */
1395
+ getQuickValues(): Observable<any>;
1396
+ static ɵfac: i0.ɵɵFactoryDeclaration<SDRFDefaultsService, never>;
1397
+ static ɵprov: i0.ɵɵInjectableDeclaration<SDRFDefaultsService>;
1398
+ }
1399
+
1400
+ declare class AsyncTaskService extends BaseApiService {
1401
+ /**
1402
+ * Get all async tasks for the current user with optional filtering
1403
+ */
1404
+ getAsyncTasks(params?: AsyncTaskQueryParams): Observable<PaginatedResponse<AsyncTaskStatus>>;
1405
+ /**
1406
+ * Get a specific async task by ID
1407
+ */
1408
+ getAsyncTask(id: string): Observable<AsyncTaskStatus>;
1409
+ /**
1410
+ * Cancel a queued or running task
1411
+ */
1412
+ cancelTask(id: string): Observable<{
1413
+ message: string;
1414
+ }>;
1415
+ /**
1416
+ * Generate a signed download URL for task result file
1417
+ */
1418
+ getDownloadUrl(id: string): Observable<DownloadUrlResponse>;
1419
+ /**
1420
+ * Direct download endpoint (returns blob for file download)
1421
+ */
1422
+ downloadTaskFile(id: string, token: string): Observable<Blob>;
1423
+ static ɵfac: i0.ɵɵFactoryDeclaration<AsyncTaskService, never>;
1424
+ static ɵprov: i0.ɵɵInjectableDeclaration<AsyncTaskService>;
1425
+ }
1426
+
1427
+ declare class AsyncExportService extends BaseApiService {
1428
+ excelTemplate(request: MetadataExportRequest): Observable<AsyncTaskCreateResponse>;
1429
+ sdrfFile(request: MetadataExportRequest): Observable<AsyncTaskCreateResponse>;
1430
+ multipleSdrfFiles(request: BulkExportRequest): Observable<AsyncTaskCreateResponse>;
1431
+ multipleExcelTemplates(request: BulkExcelExportRequest): Observable<AsyncTaskCreateResponse>;
1432
+ static ɵfac: i0.ɵɵFactoryDeclaration<AsyncExportService, never>;
1433
+ static ɵprov: i0.ɵɵInjectableDeclaration<AsyncExportService>;
1434
+ }
1435
+
1436
+ declare class AsyncImportService extends BaseApiService {
1437
+ /**
1438
+ * Calculate SHA256 hash of a file
1439
+ */
1440
+ private calculateSHA256;
1441
+ sdrfFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
1442
+ excelFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
1443
+ static ɵfac: i0.ɵɵFactoryDeclaration<AsyncImportService, never>;
1444
+ static ɵprov: i0.ɵɵInjectableDeclaration<AsyncImportService>;
1445
+ }
1446
+
1447
+ declare class AsyncValidationService extends BaseApiService {
1448
+ metadataTable(request: MetadataValidationRequest): Observable<AsyncTaskCreateResponse>;
1449
+ static ɵfac: i0.ɵɵFactoryDeclaration<AsyncValidationService, never>;
1450
+ static ɵprov: i0.ɵɵInjectableDeclaration<AsyncValidationService>;
1451
+ }
1452
+
1453
+ declare class ChunkedUploadService extends BaseApiService {
1454
+ /**
1455
+ * Initialize or continue a chunked upload
1456
+ */
1457
+ uploadChunk(request: ChunkedUploadRequest, uploadId?: string, offset?: number, totalSize?: number): Observable<ChunkedUploadResponse>;
1458
+ /**
1459
+ * Get chunked upload status
1460
+ */
1461
+ getUploadStatus(uploadId: string): Observable<ChunkedUploadStatus>;
1462
+ /**
1463
+ * Complete the chunked upload and process the file
1464
+ */
1465
+ completeUpload(uploadId: string, request?: ChunkedUploadCompletionRequest): Observable<ChunkedUploadCompletionResponse>;
1466
+ /**
1467
+ * Delete/cancel a chunked upload
1468
+ */
1469
+ cancelUpload(uploadId: string): Observable<void>;
1470
+ /**
1471
+ * Helper method to upload a file in chunks with progress tracking
1472
+ */
1473
+ uploadFileInChunks(file: File, chunkSize?: number, // 1MB chunks by default
1474
+ options?: {
1475
+ metadataTableId?: number;
1476
+ createPools?: boolean;
1477
+ replaceExisting?: boolean;
1478
+ uploadSessionId?: string;
1479
+ onProgress?: (progress: number) => void;
1480
+ }): Observable<ChunkedUploadCompletionResponse>;
1481
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChunkedUploadService, never>;
1482
+ static ɵprov: i0.ɵɵInjectableDeclaration<ChunkedUploadService>;
1483
+ }
1484
+
1485
+ declare class CupcakeVanilla {
1486
+ static ɵfac: i0.ɵɵFactoryDeclaration<CupcakeVanilla, never>;
1487
+ static ɵcmp: i0.ɵɵComponentDeclaration<CupcakeVanilla, "ccv-cupcake-vanilla", never, {}, {}, never, never, true, never>;
1488
+ }
1489
+
1490
+ export { AsyncExportService, AsyncImportService, AsyncTaskService, AsyncValidationService, ChunkedUploadService, CupcakeVanilla, FavouriteMetadataOptionService, MetadataColumnService, MetadataColumnTemplateService, MetadataColumnTemplateShareService, MetadataManagementService, MetadataTableService, MetadataTableTemplateService, OntologySearchService, OntologyType, OntologyTypeLabels, OntologyUtils, SDRFDefaultsService, SamplePoolService, SchemaService, TASK_STATUS_COLORS, TASK_STATUS_LABELS, TASK_TYPE_LABELS, TemplatePermissionLabels, TemplatePermissionLevel, isUnimodFullData };
1491
+ export type { ApiResponse, AsyncTaskCreateResponse, AsyncTaskQueryParams, AsyncTaskStatus, BaseTimestampedModel, BulkExcelExportRequest, BulkExportRequest, CellOntology, ChEBICompound, ChunkedUploadCompletionRequest, ChunkedUploadCompletionResponse, ChunkedUploadRequest, ChunkedUploadResponse, ChunkedUploadStatus, DownloadUrlResponse, FavouriteMetadataOption, FavouriteMetadataOptionCreateRequest, FavouriteMetadataOptionQueryParams, FavouriteMetadataOptionUpdateRequest, HumanDisease, MSUniqueVocabularies, MetadataColumn, MetadataColumnCreateRequest, MetadataColumnModifier, MetadataColumnQueryParams, MetadataColumnTemplate, MetadataColumnTemplateCreateRequest, MetadataColumnTemplateQueryParams, MetadataColumnTemplateShare, MetadataColumnTemplateShareCreateRequest, MetadataColumnTemplateShareQueryParams, MetadataColumnTemplateUpdateRequest, MetadataColumnUpdateRequest, MetadataExportRequest, MetadataImportRequest, MetadataQueryParams, MetadataTable, MetadataTableCreateRequest, MetadataTableQueryParams, MetadataTableQueryResponse, MetadataTableTemplate, MetadataTableTemplateCreateRequest, MetadataTableTemplateQueryParams, MetadataTableTemplateQueryResponse, MetadataTableTemplateUpdateRequest, MetadataTableUpdateRequest, MetadataValidationConfig, MetadataValidationRequest, MondoDisease, NCBITaxonomy, OntologySuggestion, OntologySuggestionResponse, PSIMSOntology, PaginatedResponse, SamplePool, SamplePoolCreateRequest, SamplePoolQueryParams, SamplePoolUpdateRequest, Schema, SchemaQueryParams, Species, SubcellularLocation, TaskListItem, TaskResult, TaskStatus, TaskType, Tissue, UberonAnatomy, Unimod, UnimodFullData, UnimodSpecification };