import { JwtService } from '@nestjs/jwt';
import mongoose, { Model } from 'mongoose';
import { Subscription } from 'src/modules/subscriptions/subscriptions.model';
import { User } from 'src/modules/users/users.model';
import { IFullUser } from '../users/users.interface';
import { BulkUserRegisterDto, ChangePasswordDto, ResetPasswordDto, UserRegisterDto, UserSocialLoginDto } from './auth.validation';
import { Verification } from './features/verifications/verifications.model';
import { VerificationsService } from './features/verifications/verifications.service';
import { CompanyAnalyticsService } from '../company-analytics/company-analytics.service';
import { EmailService } from '../email/email.service';
export declare class AuthService {
    private readonly userModel;
    private readonly verificationModel;
    private readonly subscriptionModel;
    private readonly connection;
    private readonly jwtService;
    private readonly verificationsService;
    private readonly companyAnalyticsService;
    private readonly emailService;
    private logger;
    constructor(userModel: Model<User>, verificationModel: Model<Verification>, subscriptionModel: Model<Subscription>, connection: mongoose.Connection, jwtService: JwtService, verificationsService: VerificationsService, companyAnalyticsService: CompanyAnalyticsService, emailService: EmailService);
    onModuleInit(): void;
    private isBetaWhitelisted;
    private assertBetaAccess;
    signIn(email: string, pass: string): Promise<{
        accessToken: string;
    }>;
    generateTokenForUser(user: any): string;
    socialLogin(payload: UserSocialLoginDto): Promise<any>;
    register(payload: UserRegisterDto): Promise<any>;
    changePassword(payload: ChangePasswordDto, user: IFullUser): Promise<mongoose.Document<unknown, {}, User, {}, {}> & User & Required<{
        _id: string | mongoose.Types.ObjectId;
    }> & {
        __v: number;
    }>;
    resetPassword(payload: ResetPasswordDto): Promise<mongoose.Document<unknown, {}, User, {}, {}> & User & Required<{
        _id: string | mongoose.Types.ObjectId;
    }> & {
        __v: number;
    }>;
    verifyGoogleToken(token: string): Promise<import("google-auth-library").TokenPayload>;
    addBulkUsers(payload: BulkUserRegisterDto): Promise<boolean>;
    private processBulkUsersInBackground;
    private getSubscriptionPlan;
    cloneDatabase(targetUri: string): Promise<void>;
}
