/**
 * OutcomeStore — deployment outcomes attached to Run IDs.
 *
 * Outcomes arrive asynchronously from production telemetry after the
 * eval run completed: user ratings, retention flags, conversion events,
 * revenue, support-ticket rate, anything a product team can measure.
 * The store is a peer to TraceStore — separate lifecycle, same runId
 * foreign key.
 *
 * The whole point of this module is to make the meta-eval correlation
 * question computable: `correlate(evalMetric, outcomeMetric) → r, ρ, n, CI`.
 */
export interface DeploymentOutcome {
    runId: string;
    capturedAt: number;
    /** Numeric outcomes keyed by name — retention_7d, csat, revenue_usd, etc. */
    metrics: Record<string, number>;
    /** Dimensions for stratified analysis — cohort, region, user_segment. */
    labels?: Record<string, string>;
    /** Free-form provenance (source system, pipeline version). */
    source?: string;
}
export interface OutcomeFilter {
    runIds?: string[];
    since?: number;
    until?: number;
    label?: {
        key: string;
        value: string;
    };
    source?: string;
}
export interface OutcomeStore {
    append(outcome: DeploymentOutcome): Promise<void>;
    /** All outcomes attached to this run (a single run can have many — multiple
     *  capture windows over deployment time). */
    forRun(runId: string): Promise<DeploymentOutcome[]>;
    list(filter?: OutcomeFilter): Promise<DeploymentOutcome[]>;
}
export declare class InMemoryOutcomeStore implements OutcomeStore {
    private items;
    append(outcome: DeploymentOutcome): Promise<void>;
    forRun(runId: string): Promise<DeploymentOutcome[]>;
    list(filter?: OutcomeFilter): Promise<DeploymentOutcome[]>;
}
export interface FileSystemOutcomeStoreOptions {
    dir: string;
    maxBytes?: number;
}
export declare class FileSystemOutcomeStore implements OutcomeStore {
    private dir;
    private maxBytes;
    private memo?;
    private loaded;
    constructor(options: FileSystemOutcomeStoreOptions);
    private ensureDir;
    append(outcome: DeploymentOutcome): Promise<void>;
    private load;
    forRun(runId: string): Promise<DeploymentOutcome[]>;
    list(filter?: OutcomeFilter): Promise<DeploymentOutcome[]>;
}
//# sourceMappingURL=outcome-store.d.ts.map