import { Request, Response, NextFunction } from 'express';
import { UserCredentials } from '../types';
/**
 * Initialize demo user (for testing)
 */
export declare function initializeDemoUser(): Promise<void>;
/**
 * Register a new user
 */
export declare function registerUser(credentials: UserCredentials): Promise<void>;
/**
 * Authenticate user and generate JWT token
 */
export declare function authenticateUser(credentials: UserCredentials, ip: string): Promise<string>;
/**
 * Verify JWT token middleware
 */
export declare function verifyToken(req: Request, res: Response, next: NextFunction): void;
/**
 * Optional authentication middleware (doesn't fail if no token)
 */
export declare function optionalAuth(req: Request, _res: Response, next: NextFunction): void;
/**
 * Verify JWT token from header or query parameter (for resource requests)
 */
export declare function verifyTokenWithQuery(req: Request, res: Response, next: NextFunction): void;
/**
 * Check if user has required role
 */
export declare function requireRole(role: string): (req: Request, res: Response, next: NextFunction) => void;
//# sourceMappingURL=auth.d.ts.map