import type { PaginatedResult } from '../../models/PaginatedResult';
import type { TestListItem, TestMetadata, TestsQuery } from '../../models/TestMetadata';
/**
 * Persistence interface for test metadata.
 *
 * Tests are the reusable configuration from which flows (individual runs)
 * are created.  Unlike flows, tests have no binary files, tool calls,
 * screenshots, or video — they are pure metadata.
 */
export interface TestsPersistence {
    /** Create a new test. */
    createTest(testMetadata: TestMetadata): Promise<void>;
    /** Update an existing test. Throws TestNotFoundException if not found. */
    updateTest(testMetadata: TestMetadata): Promise<void>;
    /** Get a test by ID. Throws TestNotFoundException if not found. */
    getTestById(testId: string): Promise<TestMetadata>;
    /** List tests with optional filtering and pagination. */
    getTests(query: TestsQuery): Promise<PaginatedResult<TestListItem>>;
    /** Delete a test. */
    deleteTest(testId: string): Promise<void>;
}
//# sourceMappingURL=TestsPersistence.d.ts.map