import type { AuthUser, IndustryType } from '@iota-big3/sdk-types'; import type { Request, RequestHandler } from 'express'; import type { FastifyInstance } from 'fastify'; export interface ApiKey { id: string; name: string; scopes?: string[]; } export interface AuthenticatedRequest extends Request { user?: AuthUser; apiKey?: ApiKey; auth?: { type: 'jwt' | 'apiKey' | 'session'; token?: string; }; } export interface AuthConfig { secret?: string; algorithm?: string; issuer?: string; audience?: string; expiresIn?: string | number; tokenHeader?: string; cookieName?: string; publicPaths?: string[]; enableJWT?: boolean; enableApiKey?: boolean; enableSession?: boolean; } export interface AuthMetadata { serviceName: string; version?: string; environment?: string; industry?: IndustryType; } export interface AuthMiddleware extends RequestHandler { express: RequestHandler; fastify: (fastify: FastifyInstance) => Promise; } export declare function createAuthMiddleware(authConfig: AuthConfig | undefined, metadata: AuthMetadata): AuthMiddleware; export declare const authMiddleware: typeof createAuthMiddleware; export default createAuthMiddleware; //# sourceMappingURL=auth-middleware.d.ts.map