import type { JsonValue } from '@iota-big3/sdk-types';
import { EventEmitter } from 'events';
import type { NextFunction, Request, Response } from 'express';
import type { AuthMiddlewareOptions, CompressionMiddlewareOptions, CorsMiddlewareOptions, ErrorMiddlewareFunction, IMiddlewareManager, LoggingMiddlewareOptions, MiddlewareConfig, MiddlewareFunction, MiddlewareHealth, RateLimitMiddlewareOptions, SDKIntegrations, ValidationMiddlewareOptions } from './types';
export declare class MiddlewareManager extends EventEmitter implements IMiddlewareManager {
    private middlewares;
    private enabled;
    private integrations;
    constructor(integrations?: SDKIntegrations);
    register(name: string, middleware: MiddlewareFunction | ErrorMiddlewareFunction, config?: MiddlewareConfig): void;
    unregister(name: string): boolean;
    execute(req: Request, res: Response, finalCallback?: NextFunction): Promise<void>;
    createAuthMiddleware(options?: AuthMiddlewareOptions): MiddlewareFunction;
    createValidationMiddleware(schema: JsonValue, _options?: ValidationMiddlewareOptions): MiddlewareFunction;
    createLoggingMiddleware(options?: LoggingMiddlewareOptions): MiddlewareFunction;
    createRateLimitMiddleware(options?: RateLimitMiddlewareOptions): MiddlewareFunction;
    createCorsMiddleware(options?: CorsMiddlewareOptions): MiddlewareFunction;
    createCompressionMiddleware(options?: CompressionMiddlewareOptions): MiddlewareFunction;
    getHealth(): MiddlewareHealth;
    enable(): void;
    disable(): void;
    clear(): void;
}
//# sourceMappingURL=middleware-manager.d.ts.map