import { Router, Request, Response } from 'express';
import { UserStorage, User } from './UserStorage';
declare class AuthService {
    private userStorage;
    constructor(dataDir?: string);
    initialize(): Promise<void>;
    authenticateUser(username: string, password: string): Promise<User | null>;
    generateToken(userId: number): Promise<string>;
    validateToken(token: string): Promise<User | null>;
    revokeToken(token: string): Promise<boolean>;
    getUserInfo(user: User): {
        id: number;
        username: string;
        role: string;
        permissions: string[];
        created_at: number;
        updated_at: number;
        is_active: boolean;
        email?: string;
    };
    cleanupExpiredTokens(): Promise<number>;
    close(): Promise<void>;
    getUserStorage(): UserStorage;
}
export declare class AuthRouter {
    private router;
    private authService;
    constructor(dataDir?: string);
    initialize(): Promise<void>;
    private setupRoutes;
    authMiddleware(): (req: Request, res: Response, next: any) => Promise<Response<any, Record<string, any>> | undefined>;
    getRouter(): Router;
    getAuthService(): AuthService;
    getUserStorage(): UserStorage;
}
export {};
//# sourceMappingURL=AuthRouter.d.ts.map