import { AuthUser, TypedRequest } from '@iota-big3/sdk-types'; import type { FastifyInstance, FastifyRequest } from 'fastify'; import { AuthConfig, MiddlewareFunction } from './types-clean'; export interface AuthenticatedRequest extends TypedRequest { user?: AuthUser; token?: string; authMethod?: 'jwt' | 'api-key' | 'session'; } export interface AuthenticatedFastifyRequest extends FastifyRequest { user?: { id: string; email?: string; roles?: string[]; permissions?: string[]; industry?: string; metadata?: { lastLogin?: string; loginCount?: number; preferences?: Record; }; }; token?: string; authMethod?: 'jwt' | 'api-key' | 'session'; } export declare class AuthMiddleware { private config; private isEnabled; private metrics; constructor(config?: AuthConfig); private extractToken; private extractApiKey; private extractApiKeyFastify; private isPublicPath; private validateToken; private validateApiKey; middleware(): MiddlewareFunction; getHealthStatus(): { status: string; enabled: boolean; }; fastifyPlugin(): (fastify: FastifyInstance) => Promise; getMetrics(): typeof this.metrics; private generateRequestId; private logSuccessfulAuthentication; private logAuthenticationFailure; private logAuthenticationError; private logPublicPathAccess; private logSuccessfulAuthenticationFastify; private logAuthenticationFailureFastify; private logAuthenticationErrorFastify; private logPublicPathAccessFastify; resetMetrics(): void; } export declare function createAuthMiddleware(config?: AuthConfig): MiddlewareFunction & { fastify: (fastify: FastifyInstance) => Promise; }; //# sourceMappingURL=auth-middleware-clean.d.ts.map