/**
 * @fileoverview AnalysisRun mapper
 *
 * Maps between DeepSource API models and domain AnalysisRun aggregates.
 */
import { AnalysisRun } from '../../domain/aggregates/analysis-run/analysis-run.aggregate.js';
import { DeepSourceRun } from '../../models/runs.js';
import { CommitInfo, RunSummary, RunStatus } from '../../domain/aggregates/analysis-run/analysis-run.types.js';
/**
 * Maps a DeepSource API run to a domain AnalysisRun aggregate
 *
 * @param apiRun - The API run model
 * @param projectKey - The project key (not available in API response)
 * @returns The domain AnalysisRun aggregate
 */
export declare function mapAnalysisRunToDomain(apiRun: DeepSourceRun, projectKey: string): AnalysisRun;
/**
 * Maps a domain AnalysisRun aggregate to persistence format
 *
 * @param run - The domain AnalysisRun aggregate
 * @returns The persistence model
 */
export declare function mapAnalysisRunToPersistence(run: AnalysisRun): {
    runId: string;
    projectKey: string;
    repositoryId: string;
    commitInfo: CommitInfo;
    status: RunStatus;
    timestamps: {
        createdAt: Date;
        startedAt?: Date;
        finishedAt?: Date;
    };
    summary?: RunSummary;
    issues: Array<{
        id: string;
        issueCode: string;
        analyzerShortcode: string;
        category: string;
        severity: string;
        message: string;
        path: string;
        line?: number;
        column?: number;
    }>;
};
/**
 * Maps multiple API runs to domain aggregates
 *
 * @param apiRuns - Array of API run models
 * @param projectKey - The project key for all runs
 * @returns Array of domain AnalysisRun aggregates
 */
export declare function mapAnalysisRunsToDomainList(apiRuns: DeepSourceRun[], projectKey: string): AnalysisRun[];
export declare const AnalysisRunMapper: {
    toDomain: typeof mapAnalysisRunToDomain;
    toPersistence: typeof mapAnalysisRunToPersistence;
    toDomainList: typeof mapAnalysisRunsToDomainList;
};
