export type RequestType = 'api' | 'manifest' | 'segment' | 'other'; export interface InterceptorRequestInit { url?: string; method?: string; headers?: Record; } export interface InterceptorResponseInit { status?: number; headers?: Record; body?: unknown; } export type WaitUntilCallback = ((done: (error?: unknown) => void) => void) | (() => PromiseLike); export interface InterceptableRequest { readonly url: string; readonly method: string; readonly type: RequestType; readonly headers: Record; readonly closed: boolean; redirect(init: InterceptorRequestInit | string): void; respondWith(response: InterceptorResponseInit): void; waitUntil(fn: WaitUntilCallback): void; waitUntil(promise: PromiseLike): void; } export type RequestInterceptor = (request: InterceptableRequest) => void | PromiseLike; export interface InterceptableResponse { readonly url: string; readonly status: number; readonly headers: Record; readonly body: unknown; readonly closed: boolean; respondWith(response: InterceptorResponseInit): void; waitUntil(fn: WaitUntilCallback): void; waitUntil(promise: PromiseLike): void; } export type ResponseInterceptor = (response: InterceptableResponse) => void | PromiseLike; export interface NetworkInterceptorController { addRequestInterceptor(interceptor: RequestInterceptor): void; removeRequestInterceptor(interceptor: RequestInterceptor): void; addResponseInterceptor(interceptor: ResponseInterceptor): void; removeResponseInterceptor(interceptor: ResponseInterceptor): void; intercept(request: { url: string; method: string; type: RequestType; headers: Record; }): Promise; interceptResponse(response: { url: string; status: number; headers: Record; body: unknown; }): Promise<{ status: number; headers: Record; body: unknown; }>; } export interface InterceptResult { url: string; headers: Record; response: InterceptorResponseInit | null; } export declare class NetworkInterceptorControllerImpl implements NetworkInterceptorController { private _requestInterceptors; private _responseInterceptors; addRequestInterceptor(interceptor: RequestInterceptor): void; removeRequestInterceptor(interceptor: RequestInterceptor): void; addResponseInterceptor(interceptor: ResponseInterceptor): void; removeResponseInterceptor(interceptor: ResponseInterceptor): void; intercept(request: { url: string; method: string; type: RequestType; headers: Record; }): Promise; interceptResponse(response: { url: string; status: number; headers: Record; body: unknown; }): Promise<{ status: number; headers: Record; body: unknown; }>; } //# sourceMappingURL=interceptor.d.ts.map