///
import RequestSession, { IRequestSessionHttpErrorEvent, IRequestSessionRequestEvent, IRequestSessionResponseEvent } from '@unblocked-web/agent-mitm/handlers/RequestSession';
import IResourceMeta from '@unblocked-web/specifications/agent/net/IResourceMeta';
import { IBrowserResourceRequest } from '@unblocked-web/specifications/agent/browser/IBrowserNetworkEvents';
import { ICookie } from '@unblocked-web/specifications/agent/net/ICookie';
import { IPageEvents } from '@unblocked-web/specifications/agent/browser/IPage';
import IHttpResourceLoadDetails from '@unblocked-web/specifications/agent/net/IHttpResourceLoadDetails';
import { TypedEventEmitter } from '@ulixee/commons/lib/eventUtils';
import IBrowserRequestMatcher from '@unblocked-web/agent-mitm/interfaces/IBrowserRequestMatcher';
import { IBoundLog } from '@ulixee/commons/interfaces/ILog';
import { IMitmRequestPendingBrowserRequest, IResourceEvents } from '../interfaces/IResourceEvents';
import BrowserContext from './BrowserContext';
export default class Resources extends TypedEventEmitter implements IBrowserRequestMatcher {
private browserContext;
readonly browserRequestIdToResources: Map;
hasRegisteredMitm: boolean;
isCollecting: boolean;
keepResourceBodies: boolean;
readonly resourcesById: Map;
readonly cookiesByDomain: Map>;
protected logger: IBoundLog;
private readonly browserRequestIdToTabId;
private readonly mitmErrorsByUrl;
private readonly mitmRequestsPendingBrowserRequest;
private events;
constructor(browserContext: BrowserContext);
getForTab(tabId: number): IResourceMeta[];
get(id: number): IResourceMeta;
onWebsocketHandshake(tabId: number, event: IPageEvents['websocket-handshake']): void;
connectToMitm(requestSession: RequestSession): void;
cleanup(): void;
cancelPending(): void;
getBrowserRequestTabId(browserRequestId: string): number;
getBrowserRequestLatestResource(browserRequestId: string): IResourceMeta;
trackBrowserRequestToResourceId(browserRequestId: string, resource: IResourceMeta): void;
createNewResourceIfUnseen(tabId: number, frameId: number, resourceRequest: IBrowserResourceRequest, getBody: () => Promise): Promise;
onBrowserWillRequest(tabId: number, frameId: number, resource: IBrowserResourceRequest): IMitmRequestPendingBrowserRequest;
onBrowserDidRequest(tabId: number, frameId: number, resource: IBrowserResourceRequest): void;
onBrowserResourceLoaded(tabId: number, resource: IBrowserResourceRequest): boolean;
onBrowserRequestFailed(tabId: number, frameId: number, resource: IBrowserResourceRequest, loadError: Error): IResourceMeta;
resolveBrowserRequest(mitmResource: IHttpResourceLoadDetails): void;
determineResourceType(mitmResource: IHttpResourceLoadDetails): void;
protected onMitmResponse(event: IRequestSessionResponseEvent): void;
protected onMitmError(event: IRequestSessionHttpErrorEvent): void;
protected onMitmRequest(request: IRequestSessionRequestEvent): void;
protected onMitmRequestError(tabId: number, event: IRequestSessionHttpErrorEvent, error: Error): IResourceMeta;
private requestIsResolved;
private record;
private emitBrowserRequestFailed;
private updatePendingResource;
private createPendingResource;
private findMatchingRequest;
private matchesMitmError;
private resourceEventToMeta;
private recordCookies;
static translateResourceError(resource: IBrowserResourceRequest): Error;
}