import { Model } from 'mongoose';
import { LoginDto } from 'src/users/dto/login.dto';
import { OtpDocument } from 'src/schema/otp.schema';
import { UserDocument } from 'src/schema/user.schema';
import { VerifyOtpDto } from './dto/verify-otp.dto';
import { Request, Response } from 'express';
import { Map_User_Device_Document } from '../schema/map-user-device.schema';
import { JwtService } from '@nestjs/jwt';
import { SignUpDto } from './dto/signup.dto';
import { ResendOtpDto } from './dto/resend-otp.dto';
import { ChangePasswordDto } from './dto/change-password.dto';
import { CreateInquiryDto } from './dto/create-inquiry.dto';
import { ShipmentDocument } from 'src/schema/shipment.schema';
import { InquiryDocument } from 'src/schema/inquiry.schema';
import { Map_Company_Employee_Document } from 'src/schema/map-company-employees.schema';
import { LogoutDto } from './dto/logout.dto';
import { NotificationDocument } from 'src/schema/notifications.schema';
import { Map_Shipment_Attachment_Document } from 'src/schema/map-shipment-attachment';
import { SendMsg91OtpService } from 'src/utils/send-msg91-otp.helper';
import { AdminDocument } from 'src/schema/admin.schema';
export declare class UsersService {
    private readonly userModel;
    private readonly otpModel;
    private readonly mapUserDeviceModel;
    private readonly jwtService;
    private readonly shipmentModel;
    private readonly inquiryModel;
    private readonly mapCompanyEmployeeModel;
    private readonly notificationModel;
    private readonly mapShipmentAttachmentModel;
    private readonly msg91OtpService;
    private readonly adminModel;
    constructor(userModel: Model<UserDocument>, otpModel: Model<OtpDocument>, mapUserDeviceModel: Model<Map_User_Device_Document>, jwtService: JwtService, shipmentModel: Model<ShipmentDocument>, inquiryModel: Model<InquiryDocument>, mapCompanyEmployeeModel: Model<Map_Company_Employee_Document>, notificationModel: Model<NotificationDocument>, mapShipmentAttachmentModel: Model<Map_Shipment_Attachment_Document>, msg91OtpService: SendMsg91OtpService, adminModel: Model<AdminDocument>);
    SignUp(lang: string, body: SignUpDto, res: Response): Promise<Response<any, Record<string, any>>>;
    resendOtp(lang: string, body: ResendOtpDto, res: Response): Promise<Response<any, Record<string, any>>>;
    verifyOtp(lang: string, body: VerifyOtpDto, res: Response): Promise<Response<any, Record<string, any>>>;
    login(lang: string, body: LoginDto, res: Response): Promise<Response<any, Record<string, any>>>;
    changePassword(req: Request, lang: string, body: ChangePasswordDto, res: Response): Promise<Response<any, Record<string, any>>>;
    getMyShipments(req: Request, lang: string, type: string, page: number, limit: number, job_id: string, res: Response): Promise<Response<any, Record<string, any>>>;
    getMyShipmentsNew(req: Request, lang: string, type: string, page: number, limit: number, job_id: string, res: Response, search: string): Promise<Response<any, Record<string, any>>>;
    createInquiry(req: Request, lang: string, body: CreateInquiryDto, res: Response): Promise<Response<any, Record<string, any>>>;
    getMyInquiries(req: Request, page: number, limit: number, res: Response): Promise<Response<any, Record<string, any>>>;
    logout(req: Request, lang: string, body: LogoutDto, res: Response): Promise<Response<any, Record<string, any>>>;
    getProfile(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    getMyNotifications(req: Request, lang: string, page: number, limit: number, res: Response): Promise<Response<any, Record<string, any>>>;
    uploadShipmentDocument(req: Request, lang: string, shipment_id: string, file: Express.Multer.File, res: Response): Promise<Response<any, Record<string, any>>>;
    deleteMyInquiry(req: Request, lang: string, inquiry_id: string, res: Response): Promise<Response<any, Record<string, any>>>;
    changeMyLanguage(req: Request, lang: string, res: Response): Promise<Response<any, Record<string, any>>>;
    getSingleShipment(req: Request, shipment_id: string, lang: string, res: Response): Promise<Response<any, Record<string, any>>>;
    getSingleShipmentNew(req: Request, shipment_id: string, lang: string, res: Response): Promise<Response<any, Record<string, any>>>;
    getSingleInquiry(req: Request, inquiry_id: string, lang: string, res: Response): Promise<Response<any, Record<string, any>>>;
    deleteMyAccount(req: Request, lang: string, res: Response): Promise<Response<any, Record<string, any>>>;
}
