/**
 * Example Middleware
 * Common middleware patterns for ZinTrust
 */
import type { IRequest } from '../../src/http/Request';
import type { IResponse } from '../../src/http/Response';
import type { CsrfTokenManagerType, ICsrfTokenManager } from '../../src/security/CsrfTokenManager';
import type { IJwtManager, JwtAlgorithm, JwtManagerType } from '../../src/security/JwtManager';
import type { SchemaType } from '../../src/validation/Validator';
type JwtManagerInput = IJwtManager | JwtManagerType;
type CsrfManagerInput = ICsrfTokenManager | CsrfTokenManagerType;
/**
 * Authentication Middleware
 * Verify user is authenticated
 */
export declare const authMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
/**
 * CORS Middleware
 * Handle CORS headers
 */
export declare const corsMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
/**
 * JSON Request Middleware
 * Parse JSON request bodies
 */
export declare const jsonMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
/**
 * Logging Middleware
 * Log all requests
 */
export declare const loggingMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
export declare const rateLimitMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
/**
 * Trailing Slash Middleware
 * Redirect URLs with trailing slashes
 */
export declare const trailingSlashMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
/**
 * JWT Authentication Middleware
 * Verify JWT token and extract claims
 */
export declare const jwtMiddleware: (jwtManager: JwtManagerInput, algorithm?: JwtAlgorithm) => (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
export { authFailureResponder } from '../Middleware/AuthFailureResponder';
/**
 * CSRF Protection Middleware
 * Validate CSRF tokens for state-changing requests
 */
export declare const csrfMiddleware: (csrfManager: CsrfManagerInput) => (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
/**
 * Input Validation Middleware
 * Validate request body against schema
 */
export declare const validationMiddleware: (schema: SchemaType) => (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
/**
 * XSS Protection Middleware
 * Sanitize and escape user input
 */
export declare const xssProtectionMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
//# sourceMappingURL=index.d.ts.map