/**
 * Storage abstraction for judge evaluation results.
 *
 * Defines the interface for persisting and retrieving evaluation results.
 * Implementations can use different backends (CSV, database, cloud storage).
 */
import type { StoredEvaluation, EvaluationQuery } from "./types.js";
/**
 * Storage interface for judge evaluations.
 *
 * Provides methods for saving and querying evaluation results.
 * Implementations must ensure thread-safe operation for concurrent access.
 */
export interface JudgeStorage {
    /**
     * Saves an evaluation result.
     *
     * @param evaluation - The evaluation to persist
     * @throws Error if storage operation fails
     */
    saveEvaluation(evaluation: StoredEvaluation): Promise<void>;
    /**
     * Retrieves all evaluations matching the query.
     *
     * @param query - Optional filters to apply
     * @returns Array of matching evaluations, sorted by timestamp (newest first)
     */
    getEvaluations(query?: EvaluationQuery): Promise<StoredEvaluation[]>;
    /**
     * Retrieves evaluations for a specific prompt.
     *
     * @param promptId - The prompt identifier
     * @returns Array of evaluations for the prompt, sorted by timestamp (newest first)
     */
    getEvaluationsByPrompt(promptId: string): Promise<StoredEvaluation[]>;
    /**
     * Retrieves evaluations for a specific branch.
     *
     * @param branchName - The git branch name
     * @returns Array of evaluations for the branch, sorted by timestamp (newest first)
     */
    getEvaluationsByBranch(branchName: string): Promise<StoredEvaluation[]>;
    /**
     * Deletes all stored evaluations.
     *
     * Use with caution - this operation is irreversible.
     * @throws Error if deletion fails
     */
    clear(): Promise<void>;
}
//# sourceMappingURL=interface.d.ts.map