import { Repository, DataSource } from 'typeorm'; import { JwtService } from '@nestjs/jwt'; import { ConfigService } from '@nestjs/config'; import { User, Session, Token } from '../entities'; import { RegisterDto, LoginDto, ChangePasswordDto } from '../dto'; export interface AuthResponse { user: Partial; accessToken: string; refreshToken: string; } export interface JwtPayload { sub: string; email: string; tenant_id: string; } export declare class AuthService { private readonly userRepository; private readonly sessionRepository; private readonly tokenRepository; private readonly jwtService; private readonly configService; private readonly dataSource; constructor(userRepository: Repository, sessionRepository: Repository, tokenRepository: Repository, jwtService: JwtService, configService: ConfigService, dataSource: DataSource); register(dto: RegisterDto, tenantId: string, ip?: string, userAgent?: string): Promise; login(dto: LoginDto, tenantId: string, ip?: string, userAgent?: string): Promise; logout(userId: string, sessionToken: string): Promise; logoutAll(userId: string): Promise; refreshToken(refreshToken: string, ip?: string, userAgent?: string): Promise<{ accessToken: string; refreshToken: string; }>; changePassword(userId: string, dto: ChangePasswordDto): Promise<{ message: string; }>; requestPasswordReset(email: string, tenantId: string): Promise<{ message: string; }>; resetPassword(token: string, newPassword: string, tenantId: string): Promise<{ message: string; }>; verifyEmail(token: string, tenantId: string): Promise<{ message: string; }>; validateUser(userId: string): Promise; getProfile(userId: string): Promise>; private generateTokens; private createVerificationToken; private hashToken; private sanitizeUser; private detectDeviceType; }