import { UserRepository } from '../repositories/user.repository';
import { PasswordResetAuditRepository } from '../repositories/passwordResetAudit.repository';
import { RedisAuthStoreService } from './redisAuthStore.service';
import { EmailService } from './email.service';
export interface RequestContext {
    ip?: string | null;
    userAgent?: string | null;
    requestId?: string;
}
export declare class ForgotPasswordService {
    private userRepository;
    private auditRepository;
    private redisStore;
    private email;
    constructor(userRepository: UserRepository, auditRepository: PasswordResetAuditRepository, redisStore: RedisAuthStoreService, email: EmailService);
    private audit;
    requestOtp(rawEmail: string, ctx: RequestContext): Promise<{
        message: string;
        resendAfterSeconds: number;
    }>;
    verifyOtp(rawEmail: string, otp: string, ctx: RequestContext): Promise<{
        resetToken: any;
        expiresInSeconds: number;
    }>;
    resetPassword(userId: string, jti: string, password: string, ctx: RequestContext): Promise<{
        message: string;
    }>;
}
//# sourceMappingURL=forgotPassword.service.d.ts.map