import { IncomingRequestProcessorResponse } from '../../requests/containers'; import { MiddlewareModificationRequestOptions } from '../../responses/middleware-modification-request'; import { default as SigilResponsesList } from './sigil-responses-list'; import { Internal } from '../../types'; /** * Possible return type for middleware callbacks. * A middleware may return a handler response, undefined, or void. */ export type MiddlewareResponse = Internal.Requests.HandlerResponse | undefined | void; /** * Signature for Sigil middleware functions. * * @param request processed incoming request object. * @param response factory for generating response helpers. * @param modification response modification request * @returns MiddlewareResponse or a promise resolving to one. */ export type SigilMiddlewareCallback = (request: IncomingRequestProcessorResponse, response: SigilResponsesList, modifications: MiddlewareModificationRequestOptions) => MiddlewareResponse | Promise; /** * Wrapper class for Sigil middleware, providing lifecycle control. */ export declare class SigilMiddleware { #private; /** * Constructs a new SigilMiddleware. * * @param executor middleware callback to execute on each request. * @param onRemove callback to invoke when this middleware is removed. * @param id unique ID assigned to this middleware. */ constructor(executor: SigilMiddlewareCallback, onRemove: () => void, id: string); /** * Returns the string representation of this middleware (its ID). * * @returns middleware ID. */ toString(): string; /** * Removes this middleware by invoking its removal callback. */ removeMiddleware(): void; /** * Retrieves the original middleware callback function. * * @returns SigilMiddlewareCallback assigned to this instance. */ getMiddlewareCallback(): SigilMiddlewareCallback; }