import { FastifyRequest, FastifyReply } from 'fastify'; import { UserRole } from '@prisma/client'; declare module 'fastify' { interface FastifyRequest { user?: { id: string; email: string; role: UserRole; }; } } /** * Authenticate user via V2 JWT access token * Verifies token and checks user status in Prisma database */ export declare function authenticate(request: FastifyRequest, reply: FastifyReply): Promise; /** * Require admin role (SUPER_ADMIN, INFLUENCE_ADMIN, or MAP_ADMIN) * Also checks auth, so no need to use authenticate() separately */ export declare function requireAdminRole(request: FastifyRequest, reply: FastifyReply): Promise; /** * Optional authentication - attach user if token present, but don't require it * Used for public endpoints that want to know if user is logged in */ export declare function optionalAuth(request: FastifyRequest, _reply: FastifyReply): Promise; //# sourceMappingURL=auth.d.ts.map