import { JwtService } from '@nestjs/jwt';
import { ConfigService } from '@nestjs/config';
import { Repository } from 'typeorm';
import { UsersService } from '../users/users.service';
import { EmailService } from '../email/email.service';
import { CreateUserDto } from '../users/dto/create-user.dto';
import { LoginDto } from './dto/login.dto';
import { LoginSource, UserStatus } from '../users/entities/user.entity';
import { RevokedToken } from './entities/revoked-token.entity';
export declare class AuthService {
    private readonly usersService;
    private readonly jwtService;
    private readonly configService;
    private readonly emailService;
    private readonly revokedTokensRepository;
    constructor(usersService: UsersService, jwtService: JwtService, configService: ConfigService, emailService: EmailService, revokedTokensRepository: Repository<RevokedToken>);
    register(createUserDto: CreateUserDto): Promise<{
        message: string;
        user: {
            id: string;
            email: string;
            status: UserStatus;
        };
    }>;
    login(dto: LoginDto): Promise<{
        access_token: string;
        user: import("../users/entities/user.entity").User;
    }>;
    forgotPassword(email: string): Promise<{
        message: string;
    }>;
    private issuePasswordResetToken;
    resetPassword(token: string, password: string): Promise<{
        message: string;
    }>;
    logout(userId: string, jti: string, exp: number, source: LoginSource): Promise<{
        message: string;
    }>;
    private generateTokens;
}
