import { NetworkRequest } from '../types';
import { Request, Response, ConsoleMessage } from 'playwright';
export interface ConsoleEvent {
    type: string;
    text: string;
    timestamp: Date;
}
export interface EventFilter {
    type?: string;
    since?: Date;
    maxTokens?: number;
}
export interface NetworkFilter {
    status?: string;
    pattern?: string;
}
/**
 * Collects and manages console messages and network requests from browser debugging sessions
 * Extracted from LocalDebugEngine for better separation of concerns
 */
export declare class EventCollector {
    private consoleMessages;
    private networkRequests;
    /**
     * Add a console message to the collection
     */
    addConsoleMessage(message: ConsoleMessage): void;
    /**
     * Add a network request to the collection
     */
    addNetworkRequest(request: Request): void;
    /**
     * Update network request with response data
     */
    updateNetworkRequest(response: Response, responseBody?: any, responseSize?: number): void;
    /**
     * Mark network request as failed
     */
    markNetworkRequestFailed(request: Request, failureReason?: string): void;
    /**
     * Get console messages with optional filtering
     */
    getConsoleMessages(filter?: EventFilter): ConsoleEvent[];
    /**
     * Get network requests with optional filtering
     */
    getNetworkRequests(filter?: NetworkFilter): NetworkRequest[];
    /**
     * Get failed network requests
     */
    getFailedRequests(): NetworkRequest[];
    /**
     * Get slow network requests
     */
    getSlowRequests(thresholdMs?: number): NetworkRequest[];
    /**
     * Get API requests (JSON content or /api/ URLs)
     */
    getApiRequests(): NetworkRequest[];
    /**
     * Get requests by HTTP status code
     */
    getRequestsByStatus(status: number): NetworkRequest[];
    /**
     * Clear all collected data
     */
    clear(): void;
    /**
     * Get collection statistics
     */
    getStats(): {
        consoleMessages: number;
        networkRequests: number;
    };
    /**
     * Parse query parameters from URL
     */
    private parseQueryParams;
}
//# sourceMappingURL=event-collector.d.ts.map