import { Logger } from '../utils/Logger';
import { NetworkRequest } from './NetworkRequest';
import type { NetworkObserverOptions } from './NetworkObserverOptions';
import type { Observer } from './Observer';
import type { RequestFilter } from './filters';
import type { Network } from './Network';
import type Protocol from 'devtools-protocol';
export declare class NetworkObserver implements Observer<NetworkRequest> {
    private readonly options;
    private readonly network;
    private readonly logger;
    private readonly requestFilter?;
    private readonly _entries;
    private readonly _extraInfoBuilders;
    private destination?;
    get empty(): boolean;
    constructor(options: NetworkObserverOptions, network: Network, logger: Logger, requestFilter?: RequestFilter | undefined);
    subscribe(callback: (chromeEntry: NetworkRequest) => unknown): Promise<void>;
    unsubscribe(): Promise<void>;
    signedExchangeReceived(params: Protocol.Network.SignedExchangeReceivedEvent): void;
    requestWillBeSent({ type, loaderId, initiator, redirectResponse, documentURL, frameId, timestamp, requestId, request, wallTime }: Protocol.Network.RequestWillBeSentEvent): void;
    dataReceived({ requestId, dataLength, encodedDataLength, timestamp }: Protocol.Network.DataReceivedEvent): void;
    responseReceived({ requestId, response, timestamp, type }: Omit<Protocol.Network.ResponseReceivedEvent, 'hasExtraInfo'>): void;
    resourceChangedPriority({ requestId, newPriority }: Protocol.Network.ResourceChangedPriorityEvent): void;
    loadingFinished({ requestId, timestamp, encodedDataLength }: Protocol.Network.LoadingFinishedEvent): Promise<void>;
    loadingFailed({ requestId, errorText, canceled, type, timestamp }: Protocol.Network.LoadingFailedEvent): void;
    webSocketCreated({ initiator, requestId, url }: Protocol.Network.WebSocketCreatedEvent): void;
    eventSourceMessageReceived({ requestId, timestamp, eventName, eventId, data }: Protocol.Network.EventSourceMessageReceivedEvent): void;
    webSocketWillSendHandshakeRequest({ request, requestId, timestamp, wallTime }: Protocol.Network.WebSocketWillSendHandshakeRequestEvent): void;
    webSocketHandshakeResponseReceived({ timestamp, response, requestId }: Protocol.Network.WebSocketHandshakeResponseReceivedEvent): void;
    webSocketFrameSent({ requestId, timestamp, response }: Protocol.Network.WebSocketFrameSentEvent): void;
    webSocketFrameReceived({ requestId, timestamp, response }: Protocol.Network.WebSocketFrameReceivedEvent): void;
    webSocketFrameError({ errorMessage, requestId, timestamp }: Protocol.Network.WebSocketFrameErrorEvent): void;
    webSocketClosed({ requestId, timestamp }: Protocol.Network.WebSocketClosedEvent): void;
    requestWillBeSentExtraInfo({ requestId, headers }: Protocol.Network.RequestWillBeSentExtraInfoEvent): void;
    responseReceivedExtraInfo({ requestId, headers, headersText }: Protocol.Network.ResponseReceivedExtraInfoEvent): void;
    private getExtraInfoBuilder;
    private _appendRedirect;
    private finishRequest;
    private loadContent;
    private startRequest;
    private updateNetworkRequestWithRequest;
    private getRequestPostData;
    private createRequest;
    private updateNetworkRequestWithResponse;
    private headersMapToHeadersArray;
    private shouldExcludeRequest;
    private handleEvent;
}
