/**
 * Secret output store for cross-job secret output CRUD.
 *
 * Provides typed operations against the run_secret_outputs table:
 * - Upsert encrypted secret outputs (per run/job/key)
 * - Retrieve outputs for a specific job or multiple upstream jobs
 * - Delete all outputs for a run (cleanup)
 * - Delete orphaned outputs older than a threshold (maintenance)
 */
import type { Kysely } from 'kysely';
import type { Database } from '../db/types.js';
export declare class SecretOutputStore {
    private readonly db;
    constructor(db: Kysely<Database>);
    /**
     * Store an encrypted secret output (upsert).
     * If (run_id, job_id, output_key) already exists, the value is updated.
     */
    storeSecretOutput(runId: string, jobId: string, outputKey: string, encryptedValue: string): Promise<void>;
    /**
     * Get all secret outputs for a specific job in a run.
     *
     * @returns Record mapping output_key -> encrypted_value
     */
    getSecretOutputs(runId: string, jobId: string): Promise<Record<string, string>>;
    /**
     * Get secret outputs from multiple upstream jobs.
     *
     * @returns Record mapping jobId -> Record<output_key, encrypted_value>
     */
    getUpstreamSecretOutputs(runId: string, jobIds: string[]): Promise<Record<string, Record<string, string>>>;
    /**
     * Delete all secret outputs for a run.
     *
     * @returns Number of rows deleted
     */
    deleteByRunId(runId: string): Promise<number>;
    /**
     * Delete orphaned secret outputs older than maxAgeHours.
     * Used for periodic cleanup of outputs from completed/abandoned runs.
     *
     * @returns Number of rows deleted
     */
    cleanupOrphaned(maxAgeHours: number): Promise<number>;
}
//# sourceMappingURL=secret-output-store.d.ts.map