import type { ErrorService } from './error.service.js';
import type { SolutionService } from './solution.service.js';
import type { GitService } from './git.service.js';
export interface ScanOptions {
    gitDepth?: number;
    skipBuild?: boolean;
    skipGit?: boolean;
    skipLogs?: boolean;
}
export interface ScanResult {
    project: string;
    directory: string;
    duration: number;
    git: GitScanResult | null;
    logs: LogScanResult | null;
    build: BuildScanResult | null;
    totals: {
        errors: number;
        solutions: number;
        duplicates: number;
    };
}
export interface GitScanResult {
    commitsScanned: number;
    fixCommits: number;
    errorsCreated: number;
    solutionsCreated: number;
    duplicates: number;
}
export interface LogScanResult {
    filesScanned: number;
    errorsCreated: number;
    duplicates: number;
}
export interface BuildScanResult {
    buildSystem: string;
    command: string;
    exitCode: number;
    errorsCreated: number;
}
export declare class ProjectScanner {
    private errorService;
    private solutionService;
    private gitService;
    private logger;
    private lastScanResult;
    constructor(errorService: ErrorService, solutionService: SolutionService, gitService: GitService);
    getLastResult(): ScanResult | null;
    scan(directory: string, project: string, options?: ScanOptions): ScanResult;
    scanGitHistory(dir: string, project: string, depth?: number): GitScanResult;
    scanLogFiles(dir: string, project: string): LogScanResult;
    scanBuildOutput(dir: string, project: string): BuildScanResult;
    private extractErrorFromCommit;
    private extractSolutionFromCommit;
    private extractDiffSummary;
    private findLogFiles;
    private extractErrorChunks;
    private detectBuildSystem;
}
