/**
 * Agent Run Database Mapper
 *
 * Maps between AgentRun domain objects and SQLite database rows.
 *
 * Mapping Rules:
 * - TypeScript objects (camelCase) <-> SQL columns (snake_case)
 * - Dates stored as INTEGER (unix milliseconds)
 * - Optional fields stored as NULL when missing
 * - AgentType and AgentRunStatus stored as string values
 */
import type { AgentRun } from '../../../../domain/generated/output.js';
/**
 * Database row type matching the agent_runs table schema.
 * Uses snake_case column names.
 */
export interface AgentRunRow {
    id: string;
    agent_type: string;
    agent_name: string;
    status: string;
    prompt: string;
    result: string | null;
    session_id: string | null;
    thread_id: string;
    pid: number | null;
    last_heartbeat: number | null;
    started_at: number | null;
    completed_at: number | null;
    error: string | null;
    feature_id: string | null;
    repository_path: string | null;
    created_at: number;
    updated_at: number;
    approval_gates: string | null;
    model_id: string | null;
}
/**
 * Maps AgentRun domain object to database row.
 * Converts Date objects to unix milliseconds for SQL storage.
 *
 * @param agentRun - AgentRun domain object
 * @returns Database row object with snake_case columns
 */
export declare function toDatabase(agentRun: AgentRun): AgentRunRow;
/**
 * Maps database row to AgentRun domain object.
 * Converts unix milliseconds back to Date objects.
 * Excludes optional fields that are NULL.
 *
 * @param row - Database row with snake_case columns
 * @returns AgentRun domain object with camelCase properties
 */
export declare function fromDatabase(row: AgentRunRow): AgentRun;
//# sourceMappingURL=agent-run.mapper.d.ts.map