import { JwtService } from '@nestjs/jwt';
import { UserDto } from '../../modules/users/users.dto';
import { ConfigService } from '../config/config.service';
import { Logger } from '../logger/logger.service';
export declare class AuthService {
    private readonly jwtService;
    private readonly configService;
    private readonly logger;
    private otpUsageCache;
    constructor(jwtService: JwtService, configService: ConfigService, logger: Logger);
    authenticate(username: string, password: string, otp?: string): Promise<any>;
    signIn(username: string, password: string, otp?: string): Promise<any>;
    private checkPassword;
    generateNoAuthToken(): Promise<{
        access_token: string;
        token_type: string;
        expires_in: number;
    }>;
    validateUser(payload: any): Promise<any>;
    private hashPassword;
    private genSalt;
    setupFirstUser(user: UserDto): Promise<UserDto>;
    generateSetupWizardToken(): Promise<{
        access_token: string;
        token_type: string;
        expires_in: number;
    }>;
    checkAuthFile(): Promise<void>;
    desensitiseUserProfile(user: UserDto): UserDto;
    getUsers(strip?: boolean): Promise<UserDto[]>;
    findByUsername(username: string): Promise<UserDto>;
    private saveUserFile;
    addUser(user: UserDto): Promise<UserDto>;
    deleteUser(id: number): Promise<void>;
    updateUser(id: number, update: UserDto): Promise<UserDto>;
    updateOwnPassword(username: string, currentPassword: string, newPassword: string): Promise<UserDto>;
    setupOtp(username: string): Promise<{
        timestamp: Date;
        otpauth: string;
    }>;
    activateOtp(username: string, code: string): Promise<UserDto>;
    deactivateOtp(username: string, password: string): Promise<UserDto>;
    verifyOtpToken(user: UserDto, otp: string): boolean;
}
