/**
 * Repo Scanner
 *
 * Discovers and inventories all repositories in the project.
 * Detects repo type (frontend/backend/mobile/shared-lib) and extracts tech stack.
 */
import { Logger } from '../../../utils/logger.js';
export interface RepoInfo {
    path: string;
    name: string;
    type: RepoType;
    techStack: TechStack;
    fileCount: number;
    lineCount: number;
    languages: LanguageStats[];
    lastCommit: string;
    branch: string;
}
export type RepoType = 'frontend' | 'backend' | 'mobile' | 'shared-lib' | 'infrastructure' | 'unknown';
export interface TechStack {
    primary: string;
    framework?: string;
    database?: string;
    orm?: string;
    testing?: string;
}
export interface LanguageStats {
    language: string;
    fileCount: number;
    percentage: number;
}
/**
 * Repository scanner that discovers repos and extracts metadata.
 */
export declare class RepoScanner {
    private projectRoot;
    private logger;
    private pkgCache;
    constructor(projectRoot: string, logger?: Logger);
    /**
     * Scan all repos (umbrella or single).
     */
    scanAll(): Promise<RepoInfo[]>;
    /**
     * Scan a single repository.
     */
    scanRepo(repoPath: string): Promise<RepoInfo>;
    /**
     * Detect repository type based on file patterns.
     * Uses PackageJsonCache to avoid redundant file reads.
     */
    detectRepoType(repoPath: string): RepoType;
    /**
     * Extract tech stack from repository.
     * Uses PackageJsonCache to avoid redundant file reads.
     */
    extractTechStack(repoPath: string): Promise<TechStack>;
    /**
     * Count files in repository (excluding node_modules, .git, etc.).
     */
    private countFiles;
    /**
     * Count total lines of code.
     */
    private countLines;
    /**
     * Detect languages used in repository.
     */
    private detectLanguages;
    /**
     * Map file extension to language.
     */
    private extensionToLanguage;
    /**
     * Get Git information for repository.
     */
    private getGitInfo;
    /**
     * Discover all repos from config.
     */
    private discoverRepos;
    /**
     * Find files matching pattern.
     */
    private findFiles;
}
//# sourceMappingURL=repo-scanner.d.ts.map