import { AuthDto, autoLoginDto, newUsersDto, VerifyPhoneDto } from './dto/auth.dto';
import { DbService } from 'src/db/db.service';
import { CreateCustomerDtoNew, editProfileReferCodeDto, SocialLoginDto, VerifyPhone } from 'src/customer/dto/create-customer.dto';
import { JwtService } from '@nestjs/jwt';
import { CommonService } from 'src/common/common.service';
import * as mongosse from 'mongoose';
import { StripeService } from 'src/common/helpers/stripe.service';
import { Types } from 'mongoose';
import { ServiceTypeParcelOrRide } from 'src/driver/schema/driver.schema';
import { MessageKey } from 'src/common/helpers/message-keys.enum';
import { ProfilePayloadDto } from './dto/create-auth.dto';
import { RedisService } from 'src/redis/redis.service';
export declare class AuthService {
    private readonly model;
    private readonly jwtService;
    private readonly commonService;
    private readonly stripeService;
    private readonly redisService;
    constructor(model: DbService, jwtService: JwtService, commonService: CommonService, stripeService: StripeService, redisService: RedisService);
    becomeDriver(body: any, req: any): Promise<{
        token: string;
    }>;
    continue_with_phone(createCustomerDto: CreateCustomerDtoNew, req: any): Promise<{
        token: string;
    }>;
    verify_phone(verifyphoneDto: VerifyPhone, req: any): Promise<{
        access_token: String;
        data: any;
    }>;
    generateRefCode(name: string): Promise<string>;
    getInitials(input: string): string;
    checkToken(id: string): Promise<any>;
    getSessionFromDb(id: string): Promise<mongosse.Document<unknown, {}, import("./schema/session.schema").Sessions, {}, {}> & import("./schema/session.schema").Sessions & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    getFirstNameFromEmail(email: string): string;
    editReferCode(payload: any, req: any): Promise<void>;
    updateRefralForCustomer(payload: any, applied_referral_code: any): Promise<mongosse.Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    updateRefralForDrivers(payload: any, referral_code: any): Promise<mongosse.Document<unknown, {}, import("src/driver/schema/driver.schema").Drivers, {}, {}> & import("src/driver/schema/driver.schema").Drivers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    addRefferalInSocialogin(payload: any, body: editProfileReferCodeDto, req?: any): Promise<{
        message: MessageKey;
    }>;
    decode_JwtToken(token: string): Promise<any>;
    find_customer_with_phone(phone: string, country_code?: string): Promise<mongosse.Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    find_driver_with_phone(phone: string, country_code?: string): Promise<any>;
    find_agent_with_phone(phone: string, country_code?: string): Promise<mongosse.Document<unknown, {}, import("../agent/schema/agent.schema").Agent, {}, {}> & import("../agent/schema/agent.schema").Agent & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    find_customer_with_id(id: string): Promise<mongosse.Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    find_agent_with_id(id: string): Promise<mongosse.Document<unknown, {}, import("../agent/schema/agent.schema").Agent, {}, {}> & import("../agent/schema/agent.schema").Agent & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    find_fleet_with_id(id: string): Promise<mongosse.Document<unknown, {}, import("../fleet/schema/fleet.schema").Fleet, {}, {}> & import("../fleet/schema/fleet.schema").Fleet & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    find_driver_with_id(id: string): Promise<mongosse.Document<unknown, {}, import("src/driver/schema/driver.schema").Drivers, {}, {}> & import("src/driver/schema/driver.schema").Drivers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    find_corporate_with_id(id: string): Promise<mongosse.Document<unknown, {}, import("../company/schema/company.schema").Company, {}, {}> & import("../company/schema/company.schema").Company & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    customer_login(customer: any, fcm_token?: any, language?: any, device_type?: string, timeZone?: string): Promise<{
        access_token: String;
        data: any;
    }>;
    driver_login(driver: any, fcm_token?: any, language?: any, device_type?: string, timeZone?: string): Promise<{
        access_token: String;
        data: any;
    }>;
    agent_login(agent: any, fcm_token: String, language: any, device_type: string, timeZone: string): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("../agent/schema/agent.schema").Agent, {}, {}> & import("../agent/schema/agent.schema").Agent & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    customer_signup(body: any, customer_data: any): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    driver_signup(body: any, driver_data: any): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("src/driver/schema/driver.schema").Drivers, {}, {}> & import("src/driver/schema/driver.schema").Drivers & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    agent_signup(body: any, agent_data: any): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("../agent/schema/agent.schema").Agent, {}, {}> & import("../agent/schema/agent.schema").Agent & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    company_login(company: any, fcm_token: String, language: any, device_type: string, timeZone: string): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("../company/schema/company.schema").Company, {}, {}> & import("../company/schema/company.schema").Company & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    company_signup(body: any, company_data: any): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("../company/schema/company.schema").Company, {}, {}> & import("../company/schema/company.schema").Company & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    vendor_login(vendor: any, fcm_token: string, language?: string, device_type?: string, timeZone?: string): Promise<{
        access_token: String;
        data: any;
    }>;
    vendor_signup(body: VerifyPhone, vendor_data: any): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("../vendor/schema/vendor.schema").Vendor, {}, {}> & import("../vendor/schema/vendor.schema").Vendor & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getProfile(payload: ProfilePayloadDto): Promise<any>;
    private getProfileFromDb;
    private getVendorProfile;
    private getCustomerProfile;
    private getDriverProfile;
    private resolveDriverFleet;
    private getCompanyProfile;
    private getAgentProfile;
    getDriverServicePreferences: (driver: any) => any[];
    getDriverServiceTypeParcelOrRides(driver: any, activeVehicle: any): any;
    getServiceType(service_preference: any): ServiceTypeParcelOrRide;
    getTodaysEarnings(driverId: string): Promise<{
        today_earning: any;
        today_rides: any;
        yesterday_earning: any;
        yesterday_rides: any;
        percentage_difference: number;
    }>;
    editProfile(payload: any, body: any, req: any): Promise<{
        message: any;
        driver_service_type: import("src/driver/schema/driver.schema").ServiceType;
    }>;
    send_email_referral_applied(name: any, email: any, numberCondition: any, user_data?: any, req?: any): Promise<void>;
    verify_email(payload: any, body: any, req: any): Promise<{
        message: any;
        driver_service_type?: undefined;
    } | {
        message: any;
        driver_service_type: import("src/driver/schema/driver.schema").ServiceType;
    }>;
    verify_edit_phone(payload: any, body: any, req: any): Promise<{
        message: any;
    }>;
    delete_account(payload: any, req: any): Promise<{
        message: any;
    }>;
    logOut(req: any, payload: any): Promise<{
        message: any;
    }>;
    social_login(body: SocialLoginDto, req?: any): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    } | {
        access_token: string;
        data: mongosse.Document<unknown, {}, import("src/driver/schema/driver.schema").Drivers, {}, {}> & import("src/driver/schema/driver.schema").Drivers & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    login_with_google(body: SocialLoginDto, req: any): Promise<{
        access_token: String;
        data: mongosse.Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    login_with_apple(body: any, req: any): Promise<{
        access_token: string;
        data: mongosse.Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    } | {
        access_token: string;
        data: mongosse.Document<unknown, {}, import("src/driver/schema/driver.schema").Drivers, {}, {}> & import("src/driver/schema/driver.schema").Drivers & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    UpdateFcmToken(id: any, token: any): Promise<{
        message: string;
    }>;
    SentWelcomeMailToCustomer(req: any, name: any, email: any, user_data?: any): Promise<void>;
    SentWelcomeMailToDriver(req: any, name: any, email: any, user_data?: any): Promise<void>;
    ContinueWithPhone(body: AuthDto, req: any): Promise<{
        token: string;
    }>;
    generateUniqueReferralCode(): Promise<string>;
    VerifyPhone(body: VerifyPhoneDto, req: any): Promise<{
        access_token: String;
        data: any;
    }>;
    Vendor_login(vendor: any, fcm_token: String): Promise<{
        access_token: string;
        data: mongosse.Document<unknown, {}, import("../vendor/schema/vendor.schema").Vendor, {}, {}> & import("../vendor/schema/vendor.schema").Vendor & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    EditProfile(payload: any, body: any, user_info: any, driver_id?: string, customer_id?: string): Promise<{
        message: any;
    }>;
    CustomerProfileUpdate(customer_id: any, data_to_update: any, phone_otp: any, email_otp: any, scope?: any): Promise<void>;
    DriverProfileUpdate(customer_id: any, data_to_update: any, phone_otp: any, email_otp: any): Promise<void>;
    VerifyEmail(payload: any, body: any, req: any): Promise<{
        message: any;
    }>;
    VerifyEditPhone(payload: any, body: any, req: any): Promise<{
        message: any;
    }>;
    DeleteAccount(payload: any, req: any, body: any): Promise<{
        message: any;
    }>;
    LogOut(req: any, payload: any): Promise<{
        message: any;
    }>;
    sentOtp(body: any, req: any): Promise<{
        token: string;
    }>;
    sendEmailOtp(req: any, body: any): Promise<{
        message: string;
    }>;
    verifyOtp(req: any, body: any): Promise<{
        result: boolean;
    }>;
    regenerateReferralCode(payload: any): Promise<any[] | (mongosse.Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    })>;
    newUsers(body: newUsersDto, req: any): Promise<{
        data: any[];
    }>;
    autoLogin(req: any, body: autoLoginDto): Promise<{
        access_token: String;
        data: any;
    }>;
}
