import Agent from './agent' import Dispatcher from './dispatcher' import { Interceptable, MockInterceptor } from './mock-interceptor' import MockDispatch = MockInterceptor.MockDispatch; export default MockAgent interface PendingInterceptor extends MockDispatch { origin: string; } /** A mocked Agent class that implements the Agent API. It allows one to intercept HTTP requests made through undici and return mocked responses instead. */ declare class MockAgent<TMockAgentOptions extends MockAgent.Options = MockAgent.Options> extends Dispatcher { constructor(options?: MockAgent.Options) /** Creates and retrieves mock Dispatcher instances which can then be used to intercept HTTP requests. If the number of connections on the mock agent is set to 1, a MockClient instance is returned. Otherwise a MockPool instance is returned. */ get<TInterceptable extends Interceptable>(origin: string): TInterceptable; get<TInterceptable extends Interceptable>(origin: RegExp): TInterceptable; get<TInterceptable extends Interceptable>(origin: ((origin: string) => boolean)): TInterceptable; /** Dispatches a mocked request. */ dispatch(options: Agent.DispatchOptions, handler: Dispatcher.DispatchHandlers): boolean; /** Closes the mock agent and waits for registered mock pools and clients to also close before resolving. */ close(): Promise<void>; /** Disables mocking in MockAgent. */ deactivate(): void; /** Enables mocking in a MockAgent instance. When instantiated, a MockAgent is automatically activated. Therefore, this method is only effective after `MockAgent.deactivate` has been called. */ activate(): void; /** Define host matchers so only matching requests that aren't intercepted by the mock dispatchers will be attempted. */ enableNetConnect(): void; enableNetConnect(host: string): void; enableNetConnect(host: RegExp): void; enableNetConnect(host: ((host: string) => boolean)): void; /** Causes all requests to throw when requests are not matched in a MockAgent intercept. */ disableNetConnect(): void; pendingInterceptors(): PendingInterceptor[]; assertNoPendingInterceptors(options?: { pendingInterceptorsFormatter?: PendingInterceptorsFormatter; }): void; } interface PendingInterceptorsFormatter { format(pendingInterceptors: readonly PendingInterceptor[]): string; } declare namespace MockAgent { /** MockAgent options. */ export interface Options extends Agent.Options { /** A custom agent to be encapsulated by the MockAgent. */ agent?: Agent; } }