import type { DatasetRecord, DatasetItem, DatasetItemRow, DatasetVersion, CreateDatasetInput, UpdateDatasetInput, AddDatasetItemInput, UpdateDatasetItemInput, ListDatasetsInput, ListDatasetsOutput, ListDatasetItemsInput, ListDatasetItemsOutput, ListDatasetVersionsInput, ListDatasetVersionsOutput, BatchInsertItemsInput, BatchDeleteItemsInput } from '../../types.js'; import { StorageDomain } from '../base.js'; /** * Abstract base class for datasets storage domain. * Provides the contract for dataset and dataset item CRUD operations. * * Schema validation is handled in this base class via Template Method pattern. * Subclasses implement protected _do* methods for actual storage operations, * including SCD-2 versioning (version bump, row ops, dataset_version insert). */ export declare abstract class DatasetsStorage extends StorageDomain { constructor(); dangerouslyClearAll(): Promise; abstract createDataset(input: CreateDatasetInput): Promise; abstract getDatasetById(args: { id: string; }): Promise; abstract deleteDataset(args: { id: string; }): Promise; abstract listDatasets(args: ListDatasetsInput): Promise; /** * Update a dataset. Validates existing items against new schemas if schemas are changing. * Subclasses implement _doUpdateDataset for actual storage operation. */ updateDataset(args: UpdateDatasetInput): Promise; /** Subclasses implement actual storage update logic */ protected abstract _doUpdateDataset(args: UpdateDatasetInput): Promise; /** * Add an item to a dataset. Validates input/groundTruth against dataset schemas. * Subclasses implement _doAddItem which handles SCD-2 versioning internally. */ addItem(args: AddDatasetItemInput): Promise; /** Subclasses implement actual storage add logic with SCD-2 versioning */ protected abstract _doAddItem(args: AddDatasetItemInput): Promise; /** * Update an item in a dataset. Validates changed fields against dataset schemas. * Subclasses implement _doUpdateItem which handles SCD-2 versioning internally. */ updateItem(args: UpdateDatasetItemInput): Promise; /** Subclasses implement actual storage update logic with SCD-2 versioning */ protected abstract _doUpdateItem(args: UpdateDatasetItemInput): Promise; /** * Delete an item from a dataset. Creates a tombstone row via SCD-2. * Subclasses implement _doDeleteItem which handles SCD-2 versioning internally. */ deleteItem(args: { id: string; datasetId: string; }): Promise; /** Subclasses implement actual storage delete logic with SCD-2 versioning */ protected abstract _doDeleteItem(args: { id: string; datasetId: string; }): Promise; abstract listItems(args: ListDatasetItemsInput): Promise; abstract getItemById(args: { id: string; datasetVersion?: number; }): Promise; abstract getItemsByVersion(args: { datasetId: string; version: number; }): Promise; abstract getItemHistory(itemId: string): Promise; abstract createDatasetVersion(datasetId: string, version: number): Promise; abstract listDatasetVersions(input: ListDatasetVersionsInput): Promise; /** * Batch insert items to a dataset. Validates all items against dataset schemas, * then delegates to subclass which handles SCD-2 versioning internally. */ batchInsertItems(input: BatchInsertItemsInput): Promise; /** Subclasses implement batch insert with SCD-2 versioning */ protected abstract _doBatchInsertItems(input: BatchInsertItemsInput): Promise; /** * Batch delete items from a dataset. Creates tombstone rows via SCD-2. * Subclasses implement _doBatchDeleteItems which handles SCD-2 versioning internally. */ batchDeleteItems(input: BatchDeleteItemsInput): Promise; /** Subclasses implement batch delete with SCD-2 versioning */ protected abstract _doBatchDeleteItems(input: BatchDeleteItemsInput): Promise; } //# sourceMappingURL=base.d.ts.map