export interface FunctionMatch {
    name: string;
    filePath: string;
    startLine: number;
    endLine: number;
    signature: string;
    parameters: string[];
    returnType?: string;
    isAsync: boolean;
    isMethod: boolean;
    className?: string;
    accessibility?: 'public' | 'private' | 'protected';
    relevanceScore: number;
}
export interface ClassMatch {
    name: string;
    filePath: string;
    startLine: number;
    endLine: number;
    extendsClass?: string;
    implements: string[];
    methods: string[];
    properties: string[];
    isAbstract: boolean;
    isInterface: boolean;
    relevanceScore: number;
}
export interface PatternMatch {
    pattern: string;
    filePath: string;
    startLine: number;
    endLine: number;
    similarity: number;
    context: string[];
    matchType: 'exact' | 'structural' | 'semantic';
}
export interface CodeTraversalOptions {
    includeExtensions: string[];
    excludePatterns: string[];
    maxDepth: number;
    followSymlinks: boolean;
    ignoreCase: boolean;
}
export interface PatternSearchOptions {
    maxResults: number;
    minSimilarity: number;
    includeComments: boolean;
    normalizeWhitespace: boolean;
    caseSensitive: boolean;
}
/**
 * Main code pattern matching engine
 */
export declare class CodePatternMatcher {
    private rootPath;
    private readonly defaultExtensions;
    private readonly defaultExcludePatterns;
    constructor(rootPath?: string);
    /**
     * Find function definitions across the codebase
     */
    findFunctionDefinitions(functionName?: string, options?: CodeTraversalOptions): Promise<FunctionMatch[]>;
    /**
     * Find class definitions across the codebase
     */
    findClassDefinitions(className?: string, options?: CodeTraversalOptions): Promise<ClassMatch[]>;
    /**
     * Find similar code patterns to a given pattern
     */
    findSimilarPatterns(targetPattern: string, options?: PatternSearchOptions): Promise<PatternMatch[]>;
    /**
     * Traverse the codebase and collect relevant files
     */
    private traverseCodebase;
    /**
     * Extract function definitions from file content
     */
    private extractFunctionDefinitions;
    /**
     * Extract class definitions from file content
     */
    private extractClassDefinitions;
    /**
     * Find pattern matches in file content
     */
    private findPatternMatches;
    private getDefaultTraversalOptions;
    private getDefaultPatternSearchOptions;
    private shouldExclude;
    private getFunctionPatterns;
    private getClassPatterns;
    private getLineNumber;
    private findFunctionEndLine;
    private findClassEndLine;
    private extractParameters;
    private extractImplements;
    private extractClassMethods;
    private extractClassProperties;
    private calculateFunctionRelevance;
    private calculateClassRelevance;
    private normalizePattern;
    private extractCodeBlocks;
    private calculatePatternSimilarity;
    private levenshteinDistance;
    private extractBlockContext;
    private determineMatchType;
}
//# sourceMappingURL=code-pattern-matching.d.ts.map