@mixedbread/sdk 0.29.0 → 0.31.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 (87) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +18 -18
  3. package/bin/cli +4 -10
  4. package/bin/migration-config.json +70 -0
  5. package/client.d.mts +3 -0
  6. package/client.d.mts.map +1 -1
  7. package/client.d.ts +3 -0
  8. package/client.d.ts.map +1 -1
  9. package/client.js +3 -0
  10. package/client.js.map +1 -1
  11. package/client.mjs +3 -0
  12. package/client.mjs.map +1 -1
  13. package/package.json +1 -1
  14. package/resources/data-sources/connectors.d.mts +4 -4
  15. package/resources/data-sources/connectors.d.mts.map +1 -1
  16. package/resources/data-sources/connectors.d.ts +4 -4
  17. package/resources/data-sources/connectors.d.ts.map +1 -1
  18. package/resources/index.d.mts +1 -0
  19. package/resources/index.d.mts.map +1 -1
  20. package/resources/index.d.ts +1 -0
  21. package/resources/index.d.ts.map +1 -1
  22. package/resources/index.js +3 -1
  23. package/resources/index.js.map +1 -1
  24. package/resources/index.mjs +1 -0
  25. package/resources/index.mjs.map +1 -1
  26. package/resources/stores/files.d.mts +547 -0
  27. package/resources/stores/files.d.mts.map +1 -0
  28. package/resources/stores/files.d.ts +547 -0
  29. package/resources/stores/files.d.ts.map +1 -0
  30. package/resources/stores/files.js +68 -0
  31. package/resources/stores/files.js.map +1 -0
  32. package/resources/stores/files.mjs +64 -0
  33. package/resources/stores/files.mjs.map +1 -0
  34. package/resources/stores/index.d.mts +3 -0
  35. package/resources/stores/index.d.mts.map +1 -0
  36. package/resources/stores/index.d.ts +3 -0
  37. package/resources/stores/index.d.ts.map +1 -0
  38. package/resources/stores/index.js +9 -0
  39. package/resources/stores/index.js.map +1 -0
  40. package/resources/stores/index.mjs +4 -0
  41. package/resources/stores/index.mjs.map +1 -0
  42. package/resources/stores/stores.d.mts +372 -0
  43. package/resources/stores/stores.d.mts.map +1 -0
  44. package/resources/stores/stores.d.ts +372 -0
  45. package/resources/stores/stores.d.ts.map +1 -0
  46. package/resources/stores/stores.js +100 -0
  47. package/resources/stores/stores.js.map +1 -0
  48. package/resources/stores/stores.mjs +95 -0
  49. package/resources/stores/stores.mjs.map +1 -0
  50. package/resources/stores.d.mts +2 -0
  51. package/resources/stores.d.mts.map +1 -0
  52. package/resources/stores.d.ts +2 -0
  53. package/resources/stores.d.ts.map +1 -0
  54. package/resources/stores.js +6 -0
  55. package/resources/stores.js.map +1 -0
  56. package/resources/stores.mjs +3 -0
  57. package/resources/stores.mjs.map +1 -0
  58. package/resources/vector-stores/files.d.mts +316 -266
  59. package/resources/vector-stores/files.d.mts.map +1 -1
  60. package/resources/vector-stores/files.d.ts +316 -266
  61. package/resources/vector-stores/files.d.ts.map +1 -1
  62. package/resources/vector-stores/files.js +10 -35
  63. package/resources/vector-stores/files.js.map +1 -1
  64. package/resources/vector-stores/files.mjs +10 -35
  65. package/resources/vector-stores/files.mjs.map +1 -1
  66. package/resources/vector-stores/vector-stores.d.mts +593 -275
  67. package/resources/vector-stores/vector-stores.d.mts.map +1 -1
  68. package/resources/vector-stores/vector-stores.d.ts +593 -275
  69. package/resources/vector-stores/vector-stores.d.ts.map +1 -1
  70. package/resources/vector-stores/vector-stores.js +15 -41
  71. package/resources/vector-stores/vector-stores.js.map +1 -1
  72. package/resources/vector-stores/vector-stores.mjs +15 -41
  73. package/resources/vector-stores/vector-stores.mjs.map +1 -1
  74. package/src/client.ts +31 -0
  75. package/src/resources/data-sources/connectors.ts +4 -4
  76. package/src/resources/index.ts +14 -0
  77. package/src/resources/stores/files.ts +692 -0
  78. package/src/resources/stores/index.ts +30 -0
  79. package/src/resources/stores/stores.ts +523 -0
  80. package/src/resources/stores.ts +3 -0
  81. package/src/resources/vector-stores/files.ts +359 -441
  82. package/src/resources/vector-stores/vector-stores.ts +693 -453
  83. package/src/version.ts +1 -1
  84. package/version.d.mts +1 -1
  85. package/version.d.ts +1 -1
  86. package/version.js +1 -1
  87. package/version.mjs +1 -1
@@ -0,0 +1,692 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as Shared from '../shared';
5
+ import * as VectorStoresFilesAPI from '../vector-stores/files';
6
+ import * as VectorStoresAPI from '../vector-stores/vector-stores';
7
+ import { APIPromise } from '../../core/api-promise';
8
+ import { RequestOptions } from '../../internal/request-options';
9
+ import { path } from '../../internal/utils/path';
10
+
11
+ export class Files extends APIResource {
12
+ /**
13
+ * Upload a file to a store.
14
+ *
15
+ * Args: store_identifier: The ID or name of the store. file_add_params: The file
16
+ * to add to the store.
17
+ *
18
+ * Returns: VectorStoreFile: The uploaded file details.
19
+ */
20
+ create(storeIdentifier: string, body: FileCreateParams, options?: RequestOptions): APIPromise<StoreFile> {
21
+ return this._client.post(path`/v1/stores/${storeIdentifier}/files`, { body, ...options });
22
+ }
23
+
24
+ /**
25
+ * Get a file from a store.
26
+ *
27
+ * Args: store_identifier: The ID or name of the store. file_id: The ID or name of
28
+ * the file. options: Get file options.
29
+ *
30
+ * Returns: VectorStoreFile: The file details.
31
+ */
32
+ retrieve(fileID: string, params: FileRetrieveParams, options?: RequestOptions): APIPromise<StoreFile> {
33
+ const { store_identifier, ...query } = params;
34
+ return this._client.get(path`/v1/stores/${store_identifier}/files/${fileID}`, { query, ...options });
35
+ }
36
+
37
+ /**
38
+ * List files indexed in a vector store with pagination and metadata filter.
39
+ *
40
+ * Args: vector_store_identifier: The ID or name of the vector store pagination:
41
+ * Pagination parameters and metadata filter
42
+ *
43
+ * Returns: VectorStoreFileListResponse: Paginated list of vector store files
44
+ */
45
+ list(
46
+ storeIdentifier: string,
47
+ body: FileListParams,
48
+ options?: RequestOptions,
49
+ ): APIPromise<FileListResponse> {
50
+ return this._client.post(path`/v1/stores/${storeIdentifier}/files/list`, { body, ...options });
51
+ }
52
+
53
+ /**
54
+ * Delete a file from a store.
55
+ *
56
+ * Args: store_identifier: The ID or name of the store. file_id: The ID or name of
57
+ * the file to delete.
58
+ *
59
+ * Returns: VectorStoreFileDeleted: The deleted file details.
60
+ */
61
+ delete(fileID: string, params: FileDeleteParams, options?: RequestOptions): APIPromise<FileDeleteResponse> {
62
+ const { store_identifier } = params;
63
+ return this._client.delete(path`/v1/stores/${store_identifier}/files/${fileID}`, options);
64
+ }
65
+
66
+ /**
67
+ * Search for files within a store based on semantic similarity.
68
+ *
69
+ * Args: store_identifier: The ID or name of the store to search within
70
+ * search_params: Search configuration including query text, pagination, and
71
+ * filters
72
+ *
73
+ * Returns: StoreFileSearchResponse: List of matching files with relevance scores
74
+ */
75
+ search(body: FileSearchParams, options?: RequestOptions): APIPromise<FileSearchResponse> {
76
+ return this._client.post('/v1/stores/files/search', { body, ...options });
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Represents a scored store file.
82
+ */
83
+ export interface ScoredStoreFile {
84
+ /**
85
+ * Unique identifier for the file
86
+ */
87
+ id: string;
88
+
89
+ /**
90
+ * Name of the file
91
+ */
92
+ filename?: string;
93
+
94
+ /**
95
+ * Optional file metadata
96
+ */
97
+ metadata?: unknown;
98
+
99
+ /**
100
+ * Processing status of the file
101
+ */
102
+ status?: StoreFileStatus;
103
+
104
+ /**
105
+ * Last error message if processing failed
106
+ */
107
+ last_error?: unknown;
108
+
109
+ /**
110
+ * ID of the containing store
111
+ */
112
+ store_id: string;
113
+
114
+ /**
115
+ * Timestamp of store file creation
116
+ */
117
+ created_at: string;
118
+
119
+ /**
120
+ * Version number of the file
121
+ */
122
+ version?: number | null;
123
+
124
+ /**
125
+ * Storage usage in bytes
126
+ */
127
+ usage_bytes?: number | null;
128
+
129
+ /**
130
+ * Type of the object
131
+ */
132
+ object?: 'store.file';
133
+
134
+ /**
135
+ * Array of scored file chunks
136
+ */
137
+ chunks: Array<
138
+ | VectorStoresAPI.ScoredTextInputChunk
139
+ | VectorStoresAPI.ScoredImageURLInputChunk
140
+ | VectorStoresAPI.ScoredAudioURLInputChunk
141
+ | VectorStoresAPI.ScoredVideoURLInputChunk
142
+ > | null;
143
+
144
+ /**
145
+ * score of the file
146
+ */
147
+ score: number;
148
+ }
149
+
150
+ export type StoreFileStatus = 'pending' | 'in_progress' | 'cancelled' | 'completed' | 'failed';
151
+
152
+ /**
153
+ * Represents a file stored in a store.
154
+ */
155
+ export interface StoreFile {
156
+ /**
157
+ * Unique identifier for the file
158
+ */
159
+ id: string;
160
+
161
+ /**
162
+ * Name of the file
163
+ */
164
+ filename?: string;
165
+
166
+ /**
167
+ * Optional file metadata
168
+ */
169
+ metadata?: unknown;
170
+
171
+ /**
172
+ * Processing status of the file
173
+ */
174
+ status?: StoreFileStatus;
175
+
176
+ /**
177
+ * Last error message if processing failed
178
+ */
179
+ last_error?: unknown;
180
+
181
+ /**
182
+ * ID of the containing store
183
+ */
184
+ store_id: string;
185
+
186
+ /**
187
+ * Timestamp of store file creation
188
+ */
189
+ created_at: string;
190
+
191
+ /**
192
+ * Version number of the file
193
+ */
194
+ version?: number | null;
195
+
196
+ /**
197
+ * Storage usage in bytes
198
+ */
199
+ usage_bytes?: number | null;
200
+
201
+ /**
202
+ * Type of the object
203
+ */
204
+ object?: 'store.file';
205
+
206
+ /**
207
+ * chunks
208
+ */
209
+ chunks?: Array<
210
+ | StoreFile.TextInputChunk
211
+ | StoreFile.ImageURLInputChunk
212
+ | StoreFile.AudioURLInputChunk
213
+ | StoreFile.VideoURLInputChunk
214
+ > | null;
215
+ }
216
+
217
+ export namespace StoreFile {
218
+ export interface TextInputChunk {
219
+ /**
220
+ * position of the chunk in a file
221
+ */
222
+ chunk_index: number;
223
+
224
+ /**
225
+ * mime type of the chunk
226
+ */
227
+ mime_type?: string;
228
+
229
+ /**
230
+ * metadata of the chunk
231
+ */
232
+ generated_metadata?: { [key: string]: unknown } | null;
233
+
234
+ /**
235
+ * model used for this chunk
236
+ */
237
+ model?: string | null;
238
+
239
+ /**
240
+ * Input type identifier
241
+ */
242
+ type?: 'text';
243
+
244
+ /**
245
+ * The offset of the text in the file relative to the start of the file.
246
+ */
247
+ offset?: number;
248
+
249
+ /**
250
+ * Text content to process
251
+ */
252
+ text: string;
253
+ }
254
+
255
+ export interface ImageURLInputChunk {
256
+ /**
257
+ * position of the chunk in a file
258
+ */
259
+ chunk_index: number;
260
+
261
+ /**
262
+ * mime type of the chunk
263
+ */
264
+ mime_type?: string;
265
+
266
+ /**
267
+ * metadata of the chunk
268
+ */
269
+ generated_metadata?: { [key: string]: unknown } | null;
270
+
271
+ /**
272
+ * model used for this chunk
273
+ */
274
+ model?: string | null;
275
+
276
+ /**
277
+ * Input type identifier
278
+ */
279
+ type?: 'image_url';
280
+
281
+ /**
282
+ * ocr text of the image
283
+ */
284
+ ocr_text?: string | null;
285
+
286
+ /**
287
+ * summary of the image
288
+ */
289
+ summary?: string | null;
290
+
291
+ /**
292
+ * The image input specification.
293
+ */
294
+ image_url: ImageURLInputChunk.ImageURL;
295
+ }
296
+
297
+ export namespace ImageURLInputChunk {
298
+ /**
299
+ * The image input specification.
300
+ */
301
+ export interface ImageURL {
302
+ /**
303
+ * The image URL. Can be either a URL or a Data URI.
304
+ */
305
+ url: string;
306
+
307
+ /**
308
+ * The image format/mimetype
309
+ */
310
+ format?: string;
311
+ }
312
+ }
313
+
314
+ export interface AudioURLInputChunk {
315
+ /**
316
+ * position of the chunk in a file
317
+ */
318
+ chunk_index: number;
319
+
320
+ /**
321
+ * mime type of the chunk
322
+ */
323
+ mime_type?: string;
324
+
325
+ /**
326
+ * metadata of the chunk
327
+ */
328
+ generated_metadata?: { [key: string]: unknown } | null;
329
+
330
+ /**
331
+ * model used for this chunk
332
+ */
333
+ model?: string | null;
334
+
335
+ /**
336
+ * Input type identifier
337
+ */
338
+ type?: 'audio_url';
339
+
340
+ /**
341
+ * speech recognition (sr) text of the audio
342
+ */
343
+ transcription?: string | null;
344
+
345
+ /**
346
+ * summary of the audio
347
+ */
348
+ summary?: string | null;
349
+
350
+ /**
351
+ * The audio input specification.
352
+ */
353
+ audio_url: AudioURLInputChunk.AudioURL;
354
+
355
+ /**
356
+ * The sampling rate of the audio.
357
+ */
358
+ sampling_rate: number;
359
+ }
360
+
361
+ export namespace AudioURLInputChunk {
362
+ /**
363
+ * The audio input specification.
364
+ */
365
+ export interface AudioURL {
366
+ /**
367
+ * The audio URL. Can be either a URL or a Data URI.
368
+ */
369
+ url: string;
370
+ }
371
+ }
372
+
373
+ export interface VideoURLInputChunk {
374
+ /**
375
+ * position of the chunk in a file
376
+ */
377
+ chunk_index: number;
378
+
379
+ /**
380
+ * mime type of the chunk
381
+ */
382
+ mime_type?: string;
383
+
384
+ /**
385
+ * metadata of the chunk
386
+ */
387
+ generated_metadata?: { [key: string]: unknown } | null;
388
+
389
+ /**
390
+ * model used for this chunk
391
+ */
392
+ model?: string | null;
393
+
394
+ /**
395
+ * Input type identifier
396
+ */
397
+ type?: 'video_url';
398
+
399
+ /**
400
+ * speech recognition (sr) text of the video
401
+ */
402
+ transcription?: string | null;
403
+
404
+ /**
405
+ * summary of the video
406
+ */
407
+ summary?: string | null;
408
+
409
+ /**
410
+ * The video input specification.
411
+ */
412
+ video_url: VideoURLInputChunk.VideoURL;
413
+ }
414
+
415
+ export namespace VideoURLInputChunk {
416
+ /**
417
+ * The video input specification.
418
+ */
419
+ export interface VideoURL {
420
+ /**
421
+ * The video URL. Can be either a URL or a Data URI.
422
+ */
423
+ url: string;
424
+ }
425
+ }
426
+ }
427
+
428
+ export interface FileListResponse {
429
+ /**
430
+ * Response model for cursor-based pagination.
431
+ */
432
+ pagination: FileListResponse.Pagination;
433
+
434
+ /**
435
+ * The object type of the response
436
+ */
437
+ object?: 'list';
438
+
439
+ /**
440
+ * The list of store files
441
+ */
442
+ data: Array<StoreFile>;
443
+ }
444
+
445
+ export namespace FileListResponse {
446
+ /**
447
+ * Response model for cursor-based pagination.
448
+ */
449
+ export interface Pagination {
450
+ /**
451
+ * Contextual direction-aware flag: True if more items exist in the requested
452
+ * pagination direction. For 'after': more items after this page. For 'before':
453
+ * more items before this page.
454
+ */
455
+ has_more: boolean;
456
+
457
+ /**
458
+ * Cursor of the first item in this page. Use for backward pagination. None if page
459
+ * is empty.
460
+ */
461
+ first_cursor: string | null;
462
+
463
+ /**
464
+ * Cursor of the last item in this page. Use for forward pagination. None if page
465
+ * is empty.
466
+ */
467
+ last_cursor: string | null;
468
+
469
+ /**
470
+ * Total number of items available across all pages. Only included when
471
+ * include_total=true was requested. Expensive operation - use sparingly.
472
+ */
473
+ total?: number | null;
474
+ }
475
+ }
476
+
477
+ /**
478
+ * Response model for file deletion.
479
+ */
480
+ export interface FileDeleteResponse {
481
+ /**
482
+ * ID of the deleted file
483
+ */
484
+ id: string;
485
+
486
+ /**
487
+ * Whether the deletion was successful
488
+ */
489
+ deleted?: boolean;
490
+
491
+ /**
492
+ * Type of the deleted object
493
+ */
494
+ object?: 'store.file';
495
+ }
496
+
497
+ export interface FileSearchResponse {
498
+ /**
499
+ * The object type of the response
500
+ */
501
+ object?: 'list';
502
+
503
+ /**
504
+ * The list of scored store files
505
+ */
506
+ data: Array<ScoredStoreFile>;
507
+ }
508
+
509
+ export interface FileCreateParams {
510
+ /**
511
+ * Optional metadata for the file
512
+ */
513
+ metadata?: unknown;
514
+
515
+ /**
516
+ * Strategy for adding the file
517
+ */
518
+ experimental?: FileCreateParams.Experimental;
519
+
520
+ /**
521
+ * ID of the file to add
522
+ */
523
+ file_id: string;
524
+ }
525
+
526
+ export namespace FileCreateParams {
527
+ /**
528
+ * Strategy for adding the file
529
+ */
530
+ export interface Experimental {
531
+ /**
532
+ * Strategy for adding the file
533
+ */
534
+ parsing_strategy?: 'fast' | 'high_quality';
535
+
536
+ /**
537
+ * Whether to contextualize the file
538
+ */
539
+ contextualization?: boolean;
540
+ }
541
+ }
542
+
543
+ export interface FileRetrieveParams {
544
+ /**
545
+ * Path param: The ID or name of the store
546
+ */
547
+ store_identifier: string;
548
+
549
+ /**
550
+ * Query param: Whether to return the chunks for the file
551
+ */
552
+ return_chunks?: boolean;
553
+ }
554
+
555
+ export interface FileListParams {
556
+ /**
557
+ * Maximum number of items to return per page (1-100)
558
+ */
559
+ limit?: number;
560
+
561
+ /**
562
+ * Cursor for forward pagination - get items after this position. Use last_cursor
563
+ * from previous response.
564
+ */
565
+ after?: string | null;
566
+
567
+ /**
568
+ * Cursor for backward pagination - get items before this position. Use
569
+ * first_cursor from previous response.
570
+ */
571
+ before?: string | null;
572
+
573
+ /**
574
+ * Whether to include total count in response (expensive operation)
575
+ */
576
+ include_total?: boolean;
577
+
578
+ /**
579
+ * Status to filter by
580
+ */
581
+ statuses?: Array<StoreFileStatus> | null;
582
+
583
+ /**
584
+ * Metadata filter to apply to the query
585
+ */
586
+ metadata_filter?:
587
+ | Shared.SearchFilter
588
+ | Shared.SearchFilterCondition
589
+ | Array<Shared.SearchFilter | Shared.SearchFilterCondition>
590
+ | null;
591
+ }
592
+
593
+ export interface FileDeleteParams {
594
+ /**
595
+ * The ID or name of the store
596
+ */
597
+ store_identifier: string;
598
+ }
599
+
600
+ export interface FileSearchParams {
601
+ /**
602
+ * Search query text
603
+ */
604
+ query: string;
605
+
606
+ /**
607
+ * IDs or names of stores to search
608
+ */
609
+ store_identifiers: Array<string>;
610
+
611
+ /**
612
+ * Number of results to return
613
+ */
614
+ top_k?: number;
615
+
616
+ /**
617
+ * Optional filter conditions
618
+ */
619
+ filters?:
620
+ | Shared.SearchFilter
621
+ | Shared.SearchFilterCondition
622
+ | Array<Shared.SearchFilter | Shared.SearchFilterCondition>
623
+ | null;
624
+
625
+ /**
626
+ * Optional list of file IDs to filter chunks by (inclusion filter)
627
+ */
628
+ file_ids?: Array<unknown> | Array<string> | null;
629
+
630
+ /**
631
+ * Search configuration options
632
+ */
633
+ search_options?: FileSearchParams.SearchOptions;
634
+ }
635
+
636
+ export namespace FileSearchParams {
637
+ /**
638
+ * Search configuration options
639
+ */
640
+ export interface SearchOptions {
641
+ /**
642
+ * Minimum similarity score threshold
643
+ */
644
+ score_threshold?: number;
645
+
646
+ /**
647
+ * Whether to rewrite the query
648
+ */
649
+ rewrite_query?: boolean;
650
+
651
+ /**
652
+ * Whether to rerank results and optional reranking configuration
653
+ */
654
+ rerank?: boolean | VectorStoresFilesAPI.RerankConfig | null;
655
+
656
+ /**
657
+ * Whether to return file metadata
658
+ */
659
+ return_metadata?: boolean;
660
+
661
+ /**
662
+ * Whether to return matching text chunks
663
+ */
664
+ return_chunks?: boolean;
665
+
666
+ /**
667
+ * Number of chunks to return for each file
668
+ */
669
+ chunks_per_file?: number;
670
+
671
+ /**
672
+ * Whether to apply search rules
673
+ */
674
+ apply_search_rules?: boolean;
675
+ }
676
+ }
677
+
678
+ export declare namespace Files {
679
+ export {
680
+ type ScoredStoreFile as ScoredStoreFile,
681
+ type StoreFileStatus as StoreFileStatus,
682
+ type StoreFile as StoreFile,
683
+ type FileListResponse as FileListResponse,
684
+ type FileDeleteResponse as FileDeleteResponse,
685
+ type FileSearchResponse as FileSearchResponse,
686
+ type FileCreateParams as FileCreateParams,
687
+ type FileRetrieveParams as FileRetrieveParams,
688
+ type FileListParams as FileListParams,
689
+ type FileDeleteParams as FileDeleteParams,
690
+ type FileSearchParams as FileSearchParams,
691
+ };
692
+ }
@@ -0,0 +1,30 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {
4
+ Files,
5
+ type ScoredStoreFile,
6
+ type StoreFileStatus,
7
+ type StoreFile,
8
+ type FileListResponse,
9
+ type FileDeleteResponse,
10
+ type FileSearchResponse,
11
+ type FileCreateParams,
12
+ type FileRetrieveParams,
13
+ type FileListParams,
14
+ type FileDeleteParams,
15
+ type FileSearchParams,
16
+ } from './files';
17
+ export {
18
+ Stores,
19
+ type Store,
20
+ type StoreChunkSearchOptions,
21
+ type StoreDeleteResponse,
22
+ type StoreQuestionAnsweringResponse,
23
+ type StoreSearchResponse,
24
+ type StoreCreateParams,
25
+ type StoreUpdateParams,
26
+ type StoreListParams,
27
+ type StoreQuestionAnsweringParams,
28
+ type StoreSearchParams,
29
+ type StoresCursor,
30
+ } from './stores';