import { type FeedbackLabel, type FeedbackTrajectory, type FeedbackTrajectoryStore } from './feedback-trajectory';
import type { ReleaseConfidenceScorecard, ReleaseConfidenceThresholds } from './release-confidence';
import type { CheckResult, TestResult } from './types';
export interface LiveProofArtifact {
    kind: string;
    id?: string;
    path?: string;
    url?: string;
    metadata?: Record<string, unknown>;
}
export interface LiveProofContext {
    projectId: string;
    scenarioId: string;
    task: string;
    checks: CheckResult[];
    artifacts: LiveProofArtifact[];
    labels: FeedbackLabel[];
    metadata: Record<string, unknown>;
    transcript: {
        role: 'user' | 'assistant' | 'system' | 'tool';
        content: string;
        at: string;
    }[];
    addCheck(check: CheckResult): void;
    addArtifact(artifact: LiveProofArtifact): void;
    addLabel(label: Omit<FeedbackLabel, 'createdAt'> & {
        createdAt?: string;
    }): void;
    addTurn(turn: {
        role: 'user' | 'assistant' | 'system' | 'tool';
        content: string;
        at?: string;
    }): void;
}
export interface LiveProofConfig {
    projectId: string;
    scenarioId: string;
    task: string;
    drive(context: LiveProofContext): Promise<void> | void;
    validate?(context: LiveProofContext): Promise<CheckResult[] | undefined> | CheckResult[] | undefined;
    requiredArtifacts?: string[];
    minPassRate?: number;
    trajectoryStore?: FeedbackTrajectoryStore;
    releaseConfidence?: {
        target: string;
        candidateId?: string;
        baselineId?: string;
        thresholds?: ReleaseConfidenceThresholds;
    };
    metadata?: Record<string, unknown>;
}
export interface LiveProofResult extends TestResult {
    projectId: string;
    scenarioId: string;
    artifacts: LiveProofArtifact[];
    labels: FeedbackLabel[];
    transcript: LiveProofContext['transcript'];
    trajectory: FeedbackTrajectory;
    releaseConfidence?: ReleaseConfidenceScorecard;
}
export declare function runLiveProof(config: LiveProofConfig): Promise<LiveProofResult>;
//# sourceMappingURL=live-proof.d.ts.map