import { NextRequest, NextResponse } from 'next/server'; export interface AuthMiddlewareOptions { requiredRole?: string; requiredPermissions?: string[]; redirectUrl?: string; } export interface AuthenticatedRequest extends NextRequest { user?: { userId: string; email: string; role: string; name: string; }; } /** * Validate token from request */ export declare function validateTokenFromRequest(request: NextRequest): any | null; /** * Authentication middleware for API routes */ export declare function withAuth(handler: (req: AuthenticatedRequest, ...args: any[]) => Promise, options?: AuthMiddlewareOptions): (request: NextRequest, context?: any) => Promise; /** * Middleware for Next.js middleware.ts file */ export declare function createAuthMiddleware(options?: AuthMiddlewareOptions): (request: NextRequest) => NextResponse; /** * Get user from request headers (for pages/API routes after middleware) */ export declare function getUserFromHeaders(request: NextRequest): AuthenticatedRequest['user'] | null; /** * Server-side authentication utilities */ export declare const serverAuth: { validateToken: typeof validateTokenFromRequest; withAuth: typeof withAuth; createMiddleware: typeof createAuthMiddleware; getUserFromHeaders: typeof getUserFromHeaders; }; //# sourceMappingURL=server.d.ts.map