import type { JsonValue } from '@iota-big3/sdk-types';
export type { AuthMiddlewareOptions, AuthResult, CompressionMiddlewareOptions, CorsMiddlewareOptions, ErrorMiddlewareFunction, IMiddlewareManager, LoggingMiddlewareOptions, MiddlewareConfig, MiddlewareEvents, MiddlewareFunction, MiddlewareHealth, MiddlewareRegistration, RateLimitMiddlewareOptions, Result, SDKIntegrations, ValidationMiddlewareOptions, ValidationResult } from './types';
export { extractHeaderString, extractQueryString, isAuthResult, isAuthUser, isJsonObject, isJsonValue, isMiddlewareConfig, isValidationResult, isValidHeaderValue, validateJsonBody } from './types';
export { MiddlewareManager } from './middleware-manager';
export { CircuitBreaker, CircuitBreakerState, createResilientMiddleware, HealthMonitor, ResilientMiddlewareFactory, RetryHandler, TimeoutHandler } from './resilience';
export type { CircuitBreakerConfig, HealthCheckConfig, ResilienceConfig, RetryConfig, TimeoutConfig } from './resilience';
export { createOptimizedMiddleware, ObjectPool, OptimizedMiddlewareFactory, PerformanceMonitor, RequestBatcher, ResponseCache } from './performance';
export type { BatchOptions, CacheConfig, PerformanceConfig, PerformanceMetrics } from './performance';
export declare function createMiddlewareManager(integrations?: SDKIntegrations): MiddlewareManager;
export declare const presets: {
    basic: () => MiddlewareManager;
    secure: (integrations: SDKIntegrations) => MiddlewareManager;
    api: (integrations: SDKIntegrations) => MiddlewareManager;
    production: (integrations: SDKIntegrations) => MiddlewareManager;
};
export declare class MiddlewareChainBuilder {
    private manager;
    constructor(integrations?: SDKIntegrations);
    use(name: string, middleware: MiddlewareFunction | ErrorMiddlewareFunction): this;
    cors(options?: CorsMiddlewareOptions): this;
    auth(options?: AuthMiddlewareOptions): this;
    rateLimit(options?: RateLimitMiddlewareOptions): this;
    compression(options?: CompressionMiddlewareOptions): this;
    logging(options?: LoggingMiddlewareOptions): this;
    validation(schema: JsonValue, options?: ValidationMiddlewareOptions): this;
    build(): MiddlewareManager;
}
import type { Application as Express } from 'express';
import type { FastifyInstance } from 'fastify';
export declare function applyToExpress(app: Express, manager: MiddlewareManager): void;
export declare function applyToFastify(fastify: FastifyInstance, manager: MiddlewareManager): Promise<void>;
export declare function createProductionMiddleware(integrations: SDKIntegrations): {
    manager: MiddlewareManager;
    resilience: ResilientMiddlewareFactory;
    performance: OptimizedMiddlewareFactory;
};
declare const _default: {
    createMiddlewareManager: typeof createMiddlewareManager;
    presets: {
        basic: () => MiddlewareManager;
        secure: (integrations: SDKIntegrations) => MiddlewareManager;
        api: (integrations: SDKIntegrations) => MiddlewareManager;
        production: (integrations: SDKIntegrations) => MiddlewareManager;
    };
    MiddlewareChainBuilder: typeof MiddlewareChainBuilder;
    applyToExpress: typeof applyToExpress;
    applyToFastify: typeof applyToFastify;
    createProductionMiddleware: typeof createProductionMiddleware;
};
export default _default;
//# sourceMappingURL=index.d.ts.map