import type { HttpRequest } from './request';
import type { HttpResponse, HttpResponseResult } from './response';
import type { ScopedLogger } from '../services/logger';
import type { ClassType } from '../types';
export type HttpMiddlewareResult = void | HttpResponseResult | Promise<void | HttpResponseResult>;
export type HttpMiddlewareFunction = (request: HttpRequest, response: HttpResponse) => HttpMiddlewareResult;
export declare abstract class HttpMiddleware {
    abstract handle(request: HttpRequest, response: HttpResponse): HttpMiddlewareResult;
}
export type HttpMiddlewareInput = ClassType<HttpMiddleware> | HttpMiddlewareFunction;
export declare class HttpLogPayloadMiddleware extends HttpMiddleware {
    private readonly logger;
    constructor(logger: ScopedLogger);
    handle(request: HttpRequest, _response: HttpResponse): Promise<void>;
}
//# sourceMappingURL=middleware.d.ts.map