import type { ResearchConfig } from '../types/config.types.js';
import type { CodeModuleRepository } from '../db/repositories/code-module.repository.js';
import type { ProjectRepository } from '../db/repositories/project.repository.js';
import type { InsightRepository } from '../db/repositories/insight.repository.js';
/**
 * Identifies code modules adapted across projects that can be generalized into templates.
 */
export declare class TemplateExtractor {
    private codeModuleRepo;
    private projectRepo;
    private insightRepo;
    private config;
    private logger;
    constructor(codeModuleRepo: CodeModuleRepository, projectRepo: ProjectRepository, insightRepo: InsightRepository, config: ResearchConfig);
    extract(): number;
    private findReusableModules;
    private findTemplatingCandidates;
}
