import { FileInfo } from '../types';
/**
 * Pattern matching result for a file
 */
export interface PatternMatch {
    /** Type of pattern matched */
    type: string;
    /** Confidence level (0-1) */
    confidence: number;
    /** Extracted metadata from the pattern */
    metadata: Record<string, any>;
    /** Description of what was matched */
    description: string;
}
/**
 * Grouped pattern analysis result
 */
export interface PatternGroup {
    /** Group identifier */
    groupId: string;
    /** Group type/category */
    type: string;
    /** Files in this group */
    files: FileInfo[];
    /** Common pattern description */
    pattern: string;
    /** Confidence this is a valid group */
    confidence: number;
    /** Extracted group metadata */
    metadata: Record<string, any>;
}
/**
 * Pattern analysis summary
 */
export interface PatternAnalysis {
    /** Individual file pattern matches */
    fileMatches: Map<string, PatternMatch[]>;
    /** Detected pattern groups */
    groups: PatternGroup[];
    /** Overall analysis hints for AI */
    hints: string[];
    /** Directory structure suggestions */
    structureSuggestions: string[];
}
/**
 * Pattern Matching Service
 * Optional utility to supplement AI analysis with pattern recognition
 * Focuses on common patterns that can help guide AI understanding
 */
export declare class PatternMatchingService {
    private patterns;
    private cache;
    constructor();
    /**
     * Analyze files for patterns and return insights for AI
     */
    analyzePatterns(files: FileInfo[], directory?: string): Promise<PatternAnalysis>;
    /**
     * Perform the actual pattern analysis (non-cached)
     */
    private performPatternAnalysis;
    /**
     * Get pattern hints that can be provided to AI for better analysis
     */
    getPatternHints(files: FileInfo[], directory?: string): Promise<string[]>;
    /**
     * Check if files appear to be part of a series or collection
     */
    findSeries(files: FileInfo[], directory?: string): Promise<PatternGroup[]>;
    /**
     * Check if files appear to be project-related
     */
    findProjects(files: FileInfo[], directory?: string): Promise<PatternGroup[]>;
    /**
     * Find pattern groups from individual matches
     */
    private findPatternGroups;
    /**
     * Group files by series patterns
     */
    private groupBySeries;
    /**
     * Group files by project patterns
     */
    private groupByProject;
    /**
     * Group files by date patterns
     */
    private groupByDate;
    /**
     * Group files by name similarity
     */
    private groupByNameSimilarity;
    /**
     * Extract common prefix from filename
     */
    private extractCommonPrefix;
    /**
     * Generate hints for AI based on pattern analysis
     */
    private generateHints;
    /**
     * Generate structure suggestions based on groups
     */
    private generateStructureSuggestions;
}
//# sourceMappingURL=pattern-matching-service.d.ts.map