/**
 * Outcome Recorder (ADR-031 Phase 2)
 *
 * Records execution outcomes to a local JSONL file for telemetry feedback.
 * Outcomes are used by the weight adjuster to improve routing precision.
 *
 * Storage: .agentics/telemetry/outcomes.jsonl (append-only)
 * Format: One JSON object per line (JSONL)
 */
export interface AgentContribution {
    readonly produced_output: boolean;
    readonly output_used: boolean;
}
export type OutcomeStatus = 'success' | 'failure' | 'partial' | 'timeout';
export interface OutcomeRecord {
    readonly timestamp: string;
    readonly prompt_hash: string;
    readonly capabilities_used: readonly string[];
    readonly agents_selected: readonly string[];
    readonly outcome: OutcomeStatus;
    readonly user_rating: number | null;
    readonly execution_time_ms: number;
    readonly agent_contributions: Readonly<Record<string, AgentContribution>>;
}
/**
 * Record an execution outcome to the telemetry JSONL file.
 * Creates the telemetry directory if it doesn't exist.
 */
export declare function recordOutcome(record: OutcomeRecord, options?: {
    basePath?: string;
}): void;
/**
 * Build an outcome record from execution data.
 */
export declare function buildOutcomeRecord(params: {
    prompt: string;
    capabilities: readonly string[];
    agents: readonly string[];
    outcome: OutcomeStatus;
    executionTimeMs: number;
    userRating?: number | null;
    contributions?: Record<string, AgentContribution>;
}): OutcomeRecord;
/**
 * Load all outcome records from the telemetry file.
 * Returns empty array if file doesn't exist.
 */
export declare function loadOutcomes(options?: {
    basePath?: string;
}): OutcomeRecord[];
/**
 * Load the most recent N outcome records.
 */
export declare function loadRecentOutcomes(count: number, options?: {
    basePath?: string;
}): OutcomeRecord[];
/**
 * Rotate the outcomes file, keeping only the most recent records.
 * This prevents unbounded file growth.
 */
export declare function rotateOutcomes(maxRecords?: number, options?: {
    basePath?: string;
}): {
    kept: number;
    removed: number;
};
/**
 * Get the path to the outcomes file.
 */
export declare function getOutcomesFilePath(basePath?: string): string;
//# sourceMappingURL=outcome-recorder.d.ts.map