import { Repository } from "typeorm";
import { Otp } from "../entities";
import { SendOtpResult } from "./dto";
import { ConfigService } from "@nestjs/config";
export declare class OtpService {
    private readonly otpRepository;
    private readonly configService;
    constructor(otpRepository: Repository<Otp>, configService: ConfigService);
    validateOtpAsync(channel: {
        email?: string;
        phone?: {
            country_code: string;
            phone_number: string;
        };
    }, otpValue: string): Promise<boolean>;
    validateEmailOtpAsync(email: string, otpValue: string): Promise<boolean>;
    validatePhoneOtpAsync(phone: {
        country_code: string;
        phone_number: string;
    }, otpValue: string): Promise<boolean>;
    createEmailOtpAsync(email: string): Promise<SendOtpResult>;
    createPhoneOtpAsync(phone: {
        country_code: string;
        phone_number: string;
    }): Promise<SendOtpResult>;
    expireOtpAsync(channel: {
        email?: string;
        phone?: {
            country_code: string;
            phone_number: string;
        };
    }): Promise<void>;
    private createOtpAsync;
    createFakeOtpResult(): SendOtpResult;
}
