/**
 * EvalClient
 *
 * Client for the eval service API: projects, test suites, test cases, runs, and reports.
 */
interface ListData<T> {
    records: T[];
    total: number;
}
export type EvalStreamEvent = {
    type: "progress" | "completed" | "error";
    runId: string;
    data: Record<string, unknown>;
};
export declare class EvalClient {
    private baseUrl;
    private headers;
    constructor(baseUrl: string, headers: Record<string, string>);
    private request;
    projects: {
        create: (data: Record<string, unknown>) => Promise<unknown>;
        list: () => Promise<ListData<unknown>>;
        get: (id: string) => Promise<unknown>;
        update: (id: string, patch: Record<string, unknown>) => Promise<unknown>;
        delete: (id: string) => Promise<void>;
        suites: {
            create: (projectId: string, data: Record<string, unknown>) => Promise<unknown>;
            update: (projectId: string, suiteId: string, patch: Record<string, unknown>) => Promise<unknown>;
            delete: (projectId: string, suiteId: string) => Promise<void>;
            cases: {
                list: (projectId: string, suiteId: string) => Promise<ListData<unknown>>;
                create: (projectId: string, suiteId: string, data: Record<string, unknown>) => Promise<unknown>;
                update: (projectId: string, suiteId: string, caseId: string, patch: Record<string, unknown>) => Promise<unknown>;
                delete: (projectId: string, suiteId: string, caseId: string) => Promise<void>;
            };
        };
    };
    runs: {
        start: (projectId: string) => Promise<{
            run_id: string;
        }>;
        list: (opts?: {
            projectId?: string;
            status?: string;
        }) => Promise<ListData<unknown>>;
        get: (id: string) => Promise<unknown>;
        abort: (id: string) => Promise<void>;
        delete: (id: string) => Promise<void>;
        stream: (id: string) => AsyncIterable<EvalStreamEvent>;
    };
    reports: {
        project: (projectId: string) => Promise<unknown>;
    };
    private streamRun;
}
export {};
//# sourceMappingURL=eval.d.ts.map