/**
 * Object to represent a template file
 */
export interface TemplateFile {
    sourcePath: string;
    targetPath: string;
    relativePath: string;
    category: TemplateCategory;
}
/**
 * Template categories for organization
 */
export declare enum TemplateCategory {
    CONFIG = "configuration",
    DOCUMENTATION = "documentation",
    HOOK = "hook",
    TEMPLATE = "template",
    TOOL = "tool",
    OTHER = "other"
}
/**
 * Scanner for template files
 */
export declare class TemplateScanner {
    private templateDir;
    private targetDir;
    private templates;
    private verbose;
    /**
     * Constructor for TemplateScanner
     *
     * @param templateDir Directory containing template files
     * @param targetDir Directory where templates will be copied/merged
     * @param verbose Whether to enable verbose logging
     */
    constructor(templateDir: string, targetDir: string, verbose?: boolean);
    /**
     * Scan the template directory for template files
     *
     * @returns Array of template files
     */
    scan(): Promise<TemplateFile[]>;
    /**
     * Recursively scan a directory for template files
     *
     * @param dir Directory to scan
     * @param relativeDir Relative path from template root directory
     */
    private scanDirectory;
    /**
     * Get a mapping of source to target paths for template files
     *
     * @returns Map of source paths to target paths
     */
    getTemplateMap(): Map<string, string>;
    /**
     * Ensure the .roo/mcp.json file is properly created
     *
     * @returns Promise resolving to true if setup was successful
     */
    ensureMcpJson(): Promise<boolean>;
    /**
     * Get templates filtered by category
     *
     * @param category Category to filter by
     * @returns Filtered templates
     */
    getTemplatesByCategory(category: TemplateCategory): TemplateFile[];
    /**
     * Categorize a template file based on its path
     *
     * @param relativePath Relative path of the template file
     * @returns Template category
     */
    private categorizeTemplate;
}
//# sourceMappingURL=template-scanner.d.ts.map