import * as http from 'node:http'; import { TransportRequestOptions, TransportRequestParams } from '../Transport'; import { RequestBody, TransportResult, Context } from '../types'; import { Connection } from '../connection'; /** * Enum of all registered middleware names. * Each middleware should have a unique name for identification and debugging. */ export declare enum MiddlewareName { PRODUCT_CHECK = "product-check" } /** * Priority values for each middleware. * Lower values execute first. Middleware is sorted by priority before execution. */ export declare const MiddlewarePriority: Record; export interface MiddlewareContext { readonly request: { readonly method: string; readonly path: string; readonly body?: RequestBody | null; readonly querystring?: string; readonly headers: Readonly; }; readonly params: Readonly; readonly options: Readonly; readonly meta: { readonly requestId: any; readonly name: string | symbol; readonly context: Context | null; readonly connection: Connection | null; readonly attempts: number; }; } export interface MiddlewareResult { continue?: boolean; } export interface Middleware { readonly name: MiddlewareName; readonly priority?: number; onResponse?: (ctx: MiddlewareContext, result: TransportResult) => MiddlewareResult | undefined; }