basant307/AI_Governance_Project
048
1import { Logger } from '@open-draft/logger';2import { Emitter, Listener } from 'strict-event-emitter';3 4type InterceptorEventMap = Record<string, any>;5type InterceptorSubscription = () => void;6/**7 * Request header name to detect when a single request8 * is being handled by nested interceptors (XHR -> ClientRequest).9 * Obscure by design to prevent collisions with user-defined headers.10 * Ideally, come up with the Interceptor-level mechanism for this.11 * @see https://github.com/mswjs/interceptors/issues/37812 */13declare const INTERNAL_REQUEST_ID_HEADER_NAME = "x-interceptors-internal-request-id";14declare function getGlobalSymbol<V>(symbol: Symbol): V | undefined;15declare function deleteGlobalSymbol(symbol: Symbol): void;16declare enum InterceptorReadyState {17 INACTIVE = "INACTIVE",18 APPLYING = "APPLYING",19 APPLIED = "APPLIED",20 DISPOSING = "DISPOSING",21 DISPOSED = "DISPOSED"22}23type ExtractEventNames<Events extends Record<string, any>> = Events extends Record<infer EventName, any> ? EventName : never;24declare class Interceptor<Events extends InterceptorEventMap> {25 private readonly symbol;26 protected emitter: Emitter<Events>;27 protected subscriptions: Array<InterceptorSubscription>;28 protected logger: Logger;29 readyState: InterceptorReadyState;30 constructor(symbol: symbol);31 /**32 * Determine if this interceptor can be applied33 * in the current environment.34 */35 protected checkEnvironment(): boolean;36 /**37 * Apply this interceptor to the current process.38 * Returns an already running interceptor instance if it's present.39 */40 apply(): void;41 /**42 * Setup the module augments and stubs necessary for this interceptor.43 * This method is not run if there's a running interceptor instance44 * to prevent instantiating an interceptor multiple times.45 */46 protected setup(): void;47 /**48 * Listen to the interceptor's public events.49 */50 on<EventName extends ExtractEventNames<Events>>(event: EventName, listener: Listener<Events[EventName]>): this;51 once<EventName extends ExtractEventNames<Events>>(event: EventName, listener: Listener<Events[EventName]>): this;52 off<EventName extends ExtractEventNames<Events>>(event: EventName, listener: Listener<Events[EventName]>): this;53 removeAllListeners<EventName extends ExtractEventNames<Events>>(event?: EventName): this;54 /**55 * Disposes of any side-effects this interceptor has introduced.56 */57 dispose(): void;58 private getInstance;59 private setInstance;60 private clearInstance;61}62 63export { ExtractEventNames as E, Interceptor as I, InterceptorEventMap as a, InterceptorSubscription as b, INTERNAL_REQUEST_ID_HEADER_NAME as c, deleteGlobalSymbol as d, InterceptorReadyState as e, getGlobalSymbol as g };64 