import { Repository } from 'typeorm';
import { NestAuthUser } from '../../user/entities/user.entity';
import { MfaService } from './mfa.service';
import { JwtService } from '../../core/services/jwt.service';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { SessionManagerService } from '../../session/services/session-manager.service';
import { NestAuthSignupRequestDto } from '../dto/requests/signup.request.dto';
import { AuthResponseDto } from '../dto/responses/auth.response.dto';
import { NestAuthLoginRequestDto } from '../dto/requests/login.request.dto';
import { NestAuthVerify2faRequestDto } from '../dto/requests/verify-2fa.request.dto';
import { NestAuthMFAMethodEnum } from '@ackplus/nest-auth-contracts';
import { AuthProviderRegistryService } from '../../core/services/auth-provider-registry.service';
import { TenantService } from '../../tenant/services/tenant.service';
import { DebugLoggerService } from '../../core/services/debug-logger.service';
import { AuthConfigService } from '../../core/services/auth-config.service';
import { AuthTokensResponseDto } from '../dto/responses/auth.response.dto';
import { UserService } from '../../user/services/user.service';
export declare class AuthService {
    private readonly userRepository;
    private readonly authProviderRegistry;
    private readonly mfaService;
    private readonly sessionManager;
    private readonly jwtService;
    private readonly eventEmitter;
    private readonly tenantService;
    private readonly debugLogger;
    private readonly authConfigService;
    private readonly userService;
    constructor(userRepository: Repository<NestAuthUser>, authProviderRegistry: AuthProviderRegistryService, mfaService: MfaService, sessionManager: SessionManagerService, jwtService: JwtService, eventEmitter: EventEmitter2, tenantService: TenantService, debugLogger: DebugLoggerService, authConfigService: AuthConfigService, userService: UserService);
    getUserWithRolesAndPermissions(userId: string, relations?: string[]): Promise<NestAuthUser>;
    getUser(): Promise<Partial<NestAuthUser>>;
    signup(input: NestAuthSignupRequestDto): Promise<AuthResponseDto>;
    login(input: NestAuthLoginRequestDto): Promise<AuthResponseDto>;
    verify2fa(input: NestAuthVerify2faRequestDto): Promise<{
        accessToken: string;
        refreshToken: string;
        trustToken: string;
    }>;
    send2faCode(userId: string, method: NestAuthMFAMethodEnum): Promise<boolean>;
    private handleSocialLogin;
    refreshToken(refreshToken: string): Promise<AuthTokensResponseDto>;
    logout(logoutType?: 'user' | 'admin' | 'system', reason?: string): Promise<boolean>;
    logoutAll(userId: string, logoutType?: 'user' | 'admin' | 'system', reason?: string): Promise<boolean>;
    private generateTokensPayload;
    private handleError;
    private generateTokensFromSession;
    private generateAuthResponse;
    private extractPermissions;
    private checkTrustedDevice;
}
//# sourceMappingURL=auth.service.d.ts.map