/**
 * @fileoverview Project mapper
 *
 * Maps between DeepSource API models and domain Project aggregates.
 */
import { Project } from '../../domain/aggregates/project/project.aggregate.js';
import { DeepSourceProject } from '../../models/projects.js';
import { ProjectRepository, ProjectStatus, ProjectConfiguration } from '../../domain/aggregates/project/project.types.js';
/**
 * Maps a DeepSource API project to a domain Project aggregate
 *
 * @param apiProject - The API project model
 * @returns The domain Project aggregate
 */
export declare function mapProjectToDomain(apiProject: DeepSourceProject): Project;
/**
 * Maps a domain Project aggregate to persistence format
 *
 * @param project - The domain Project aggregate
 * @returns The persistence model
 */
export declare function mapProjectToPersistence(project: Project): {
    key: string;
    name: string;
    repository: ProjectRepository;
    configuration: ProjectConfiguration;
    status: ProjectStatus;
    createdAt: Date;
    updatedAt: Date;
};
/**
 * Maps multiple API projects to domain aggregates
 *
 * @param apiProjects - Array of API project models
 * @returns Array of domain Project aggregates
 */
export declare function mapProjectsToDomainList(apiProjects: DeepSourceProject[]): Project[];
export declare const ProjectMapper: {
    toDomain: typeof mapProjectToDomain;
    toPersistence: typeof mapProjectToPersistence;
    toDomainList: typeof mapProjectsToDomainList;
};
