/// <reference types="mongoose/types/aggregate" />
/// <reference types="mongoose/types/callback" />
/// <reference types="mongoose/types/collection" />
/// <reference types="mongoose/types/connection" />
/// <reference types="mongoose/types/cursor" />
/// <reference types="mongoose/types/document" />
/// <reference types="mongoose/types/error" />
/// <reference types="mongoose/types/expressions" />
/// <reference types="mongoose/types/helpers" />
/// <reference types="mongoose/types/middlewares" />
/// <reference types="mongoose/types/indexes" />
/// <reference types="mongoose/types/models" />
/// <reference types="mongoose/types/mongooseoptions" />
/// <reference types="mongoose/types/pipelinestage" />
/// <reference types="mongoose/types/populate" />
/// <reference types="mongoose/types/query" />
/// <reference types="mongoose/types/schemaoptions" />
/// <reference types="mongoose/types/schematypes" />
/// <reference types="mongoose/types/session" />
/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/utility" />
/// <reference types="mongoose/types/validation" />
/// <reference types="mongoose/types/virtuals" />
/// <reference types="mongoose/types/inferschematype" />
import { HttpService } from '@nestjs/axios';
import { User, UserDocument } from './schemas/user.schema';
import { Model } from 'mongoose';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { ResetPasswordDto } from './dto/reset-password.dto';
import { MailService } from '../mail/mail.service';
import { ConfigService } from '@nestjs/config';
import { ChangePasswordDto } from './dto/change-password.dto';
import { TokenDocument } from './schemas/token.schema';
import { AppMailerService } from './../mailer/mailer.service';
export declare class UsersService {
    private userModel;
    private readonly tokenModel;
    private readonly mailService;
    private readonly appMailerServices;
    private readonly httpService;
    private readonly configService;
    constructor(userModel: Model<UserDocument>, tokenModel: Model<TokenDocument>, mailService: MailService, appMailerServices: AppMailerService, httpService: HttpService, configService: ConfigService);
    create(dto: CreateUserDto): Promise<User>;
    update(u: User, dto: UpdateUserDto): Promise<User>;
    resetPassword(dto: ResetPasswordDto): Promise<User & import("mongoose").Document<any, any, any> & {
        _id: import("mongoose").Types.ObjectId;
    }>;
    changePassword(dto: ChangePasswordDto, u: User): Promise<User & import("mongoose").Document<any, any, any> & {
        _id: import("mongoose").Types.ObjectId;
    }>;
    findAll(query: any): Promise<UserDocument[]>;
    findOne(email: string): Promise<UserDocument>;
    isEmailRegistered(email: string): Promise<boolean>;
    isValidPassword(password: string, userPassword: string): Promise<boolean>;
    hashPassword(password: string): Promise<string>;
    postDelivery(data: {
        postcode: string;
    }): Promise<any>;
    sendResetPasswordMail(token: string, email: string): Promise<void>;
    deleteExpiredTokens(): Promise<void>;
}
