/**
 * Network interception — capture Facebook GraphQL API responses via CDP.
 */
import { EventEmitter } from 'node:events';
import type { BrowserContext } from './cdp.js';
export interface GraphQLResponse {
    requestId: string;
    url: string;
    operationName?: string;
    body: Record<string, unknown>;
    timestamp: number;
}
export interface NetworkResponse {
    url: string;
    status: number;
    headers: Record<string, string>;
    requestId: string;
}
export interface NetworkInterceptorEvents {
    graphql: [response: GraphQLResponse];
    response: [response: NetworkResponse];
    error: [error: Error];
}
export declare class NetworkInterceptor extends EventEmitter<NetworkInterceptorEvents> {
    private ctx;
    private requestMap;
    private unsubscribers;
    /**
     * Start intercepting network traffic on the given CDP session.
     */
    start(ctx: BrowserContext): Promise<void>;
    /**
     * Stop intercepting.
     */
    stop(): Promise<void>;
    private handleResponse;
    /**
     * Fetch the response body for a given request ID.
     * Returns null if the body is unavailable (e.g., too large, evicted).
     */
    private fetchBody;
    /**
     * Try to determine the GraphQL operation name from either the
     * original POST body or the parsed response payload.
     */
    private extractOperationName;
}
//# sourceMappingURL=network.d.ts.map