import type { Experiment, ExperimentResult, ExperimentReviewCounts, CreateExperimentInput, UpdateExperimentInput, AddExperimentResultInput, UpdateExperimentResultInput, ListExperimentsInput, ListExperimentsOutput, ListExperimentResultsInput, ListExperimentResultsOutput } from '../../types.js';
import { StorageDomain } from '../base.js';
/**
 * Abstract base class for dataset experiments storage domain.
 * Provides the contract for experiment lifecycle and result tracking.
 */
export declare abstract class ExperimentsStorage extends StorageDomain {
    constructor();
    dangerouslyClearAll(): Promise<void>;
    abstract createExperiment(input: CreateExperimentInput): Promise<Experiment>;
    abstract updateExperiment(input: UpdateExperimentInput): Promise<Experiment>;
    abstract getExperimentById(args: {
        id: string;
    }): Promise<Experiment | null>;
    abstract listExperiments(args: ListExperimentsInput): Promise<ListExperimentsOutput>;
    abstract deleteExperiment(args: {
        id: string;
    }): Promise<void>;
    abstract addExperimentResult(input: AddExperimentResultInput): Promise<ExperimentResult>;
    abstract updateExperimentResult(input: UpdateExperimentResultInput): Promise<ExperimentResult>;
    abstract getExperimentResultById(args: {
        id: string;
    }): Promise<ExperimentResult | null>;
    abstract listExperimentResults(args: ListExperimentResultsInput): Promise<ListExperimentResultsOutput>;
    abstract deleteExperimentResults(args: {
        experimentId: string;
    }): Promise<void>;
    abstract getReviewSummary(): Promise<ExperimentReviewCounts[]>;
}
//# sourceMappingURL=base.d.ts.map