import { UserPublic } from '../models/userModel.js';
export declare const JWT_SECRET: string;
export interface AuthTokenPayload {
    userId: string;
    username: string;
    role: 'admin' | 'user';
}
export interface SystemInfo {
    requiresAuth: boolean;
    hasUsers: boolean;
    userCount: number;
    allowUserModelPull: boolean;
    version?: string;
}
export declare class AuthService {
    /**
     * Generate JWT token for user
     */
    generateToken(user: UserPublic): string;
    /**
     * Verify JWT token
     */
    verifyToken(token: string): AuthTokenPayload | null;
    /**
     * Login user
     */
    login(username: string, password: string): Promise<{
        user: UserPublic;
        token: string;
    } | null>;
    /**
     * Get system information
     */
    getSystemInfo(): SystemInfo;
    /**
     * Get user from token
     */
    getUserFromToken(token: string): Promise<UserPublic | null>;
    /**
     * Get user by username
     */
    getUserByUsername(username: string): Promise<UserPublic | null>;
    /**
     * Signup user
     */
    signup(username: string, password: string, email?: string): Promise<{
        user: UserPublic;
        token: string;
    } | null>;
}
export declare const authService: AuthService;
//# sourceMappingURL=authService.d.ts.map