import { ConsoleMessage, NetworkRequest, NetworkResponse } from '../types/index.js';
export interface AdvancedSearchOptions {
    patterns?: {
        include?: string[];
        exclude?: string[];
        mode?: 'any' | 'all';
    };
    namedPatterns?: {
        [key: string]: string;
    };
    fields?: {
        [fieldName: string]: {
            pattern?: string;
            operator?: 'equals' | 'contains' | 'startsWith' | 'endsWith' | 'regex';
            caseSensitive?: boolean;
        };
    };
    correlate?: {
        timeWindow?: number;
        fields?: string[];
    };
}
export interface SearchResult<T> {
    item: T;
    matches?: {
        [key: string]: string | string[];
    };
    score?: number;
}
export declare class AdvancedMatcher {
    private options;
    private compiledPatterns;
    constructor(options: AdvancedSearchOptions);
    private compilePatterns;
    matchConsoleMessage(message: ConsoleMessage): SearchResult<ConsoleMessage> | null;
    matchNetworkRequest(request: NetworkRequest, response?: NetworkResponse): SearchResult<{
        request: NetworkRequest;
        response?: NetworkResponse;
    }> | null;
    private getFieldValue;
    private matchField;
}
export declare function correlateMessages(messages: ConsoleMessage[], options: {
    timeWindow: number;
    fields?: string[];
}): Map<string, ConsoleMessage[]>;
export interface SearchStatistics {
    totalSearched: number;
    totalMatched: number;
    matchRate: number;
    topPatterns: {
        pattern: string;
        count: number;
    }[];
    avgScore: number;
}
export declare function calculateSearchStats<T>(results: SearchResult<T>[]): SearchStatistics;
//# sourceMappingURL=advanced-search.d.ts.map