import type { AgentGovernanceQueries } from '../spi/governance-queries.js';
import type { RunSampleQuery, RunSampleSource } from './sample-source.js';
import type { ScorableRun } from './types.js';
/**
 * A {@link RunSampleSource} over what the agent already persisted, read through
 * {@link AgentGovernanceQueries} alone. Works against any adapter that implements it (Lucid, the
 * in-memory one) — this module adds no tables of its own on the read side.
 *
 * The prompt and the answer come off `runDetail`, whose messages are the ones stamped with this
 * run's own `run_id`. There is no transcript join and no time-window heuristic: a run that wrote no
 * message has empty text, and no other run's answer can ever be handed to it.
 *
 * One seam remains, and it is the read-model's rather than this class's: a run whose messages were
 * written before message-level run stamping reads as empty text. A rule-based scorer over tool
 * outcomes still works on it; a judge over the answer has nothing to read.
 */
export declare class GovernanceRunSampleSource implements RunSampleSource {
    private readonly queries;
    constructor(queries: AgentGovernanceQueries);
    listRuns(query: RunSampleQuery): Promise<ScorableRun[]>;
    getRun(runId: string): Promise<ScorableRun | null>;
}
//# sourceMappingURL=governance-sample-source.d.ts.map