///
import { ConnectionOptions } from 'tls';
import ResourceType from './ResourceType';
import IResourceHeaders from './IResourceHeaders';
import OriginType from './OriginType';
import IHttpResourceLoadDetails from './IHttpResourceLoadDetails';
export default interface INetworkInterceptorDelegate {
tcp?: {
windowSize: number;
ttl: number;
};
tls?: {
emulatorProfileId: string;
};
dns?: {
dnsOverTlsConnection: ConnectionOptions;
useUpstreamProxy?: boolean;
};
connections?: {
socketsPerOrigin: number;
};
http: {
requestHeaders?: (request: IResourceToModify) => {
[key: string]: string;
};
cookieHeader?: (resource: IHttpResourceLoadDetails) => Promise;
onSetCookie?: (cookie: string, resource: IHttpResourceLoadDetails, statusCode: number) => Promise;
onOriginHasFirstPartyInteraction?: (documentUrl: string) => void;
beforeSendingResponseFn?: (resource: IHttpResourceLoadDetails) => Promise;
};
}
export interface IResourceToModify {
isServerHttp2: boolean;
isClientHttp2: boolean;
sessionId: string;
resourceType: ResourceType;
isSSL: boolean;
method: string;
originType: OriginType;
lowerHeaders: IResourceHeaders;
headers: IResourceHeaders;
}