import { UsersService } from "./users.service";
import { CreateUserDto, LoginUserDto, VerifyOtpDto, LoginWithEmailDto, VerifyEmailOtpDto, LoginWithGoogleDto, LoginWithAppleDto, UpdateEmailPreferencesDto } from "./dto/users.dto";
import { Response, Request } from "express";
import { filterType } from "src/common/constant/enum.constant";
export declare class UsersController {
    private readonly userService;
    constructor(userService: UsersService);
    signup(dto: CreateUserDto, res: Response, deviceType: string): Promise<Response<any, Record<string, any>>>;
    verifyOtp(dto: VerifyOtpDto, type: "signup" | "forgotPassword", res: Response): Promise<Response<any, Record<string, any>>>;
    login(dto: LoginUserDto, res: Response): Promise<Response<any, Record<string, any>>>;
    loginWithEmail(dto: LoginWithEmailDto, res: Response, req: any, user: any): Promise<Response<any, Record<string, any>>>;
    verifyEmailOtp(dto: VerifyEmailOtpDto, req: any, res: Response): Promise<Response<any, Record<string, any>>>;
    deleteAccount(user: any, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    guestLogin(data: string, file: Express.Multer.File, req: any, res: Response): Promise<Response<any, Record<string, any>>>;
    resend(dto: LoginWithEmailDto, res: Response): Promise<Response<any, Record<string, any>>>;
    loginWithGoogle(dto: LoginWithGoogleDto, res: Response): Promise<Response<any, Record<string, any>>>;
    loginWithApple(dto: LoginWithAppleDto, res: Response): Promise<Response<any, Record<string, any>>>;
    forgotPassword(email: string, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
    getError(): void;
    OtpVerify(body: {
        email: string;
        otp: string;
    }, res: Response): Promise<void>;
    resetPassword(email: string, newPassword: string, res: Response): Promise<void>;
    updateProfile(data: string, req: any, file: Express.Multer.File, res: Response): Promise<Response<any, Record<string, any>>>;
    dashboardDetails(res: Response, user: any, filterType: filterType, selectedMonth: any, selectedYear: any): Promise<Response<any, Record<string, any>>>;
    updateEmailPreferences(res: Response, user: any, body: UpdateEmailPreferencesDto): Promise<Response<any, Record<string, any>>>;
    getEmailPreferences(res: Response, user: any): Promise<Response<any, Record<string, any>>>;
    getEmployeeAnalytics(res: Response, user: any, filterType?: "day" | "week" | "month" | "year", selectedMonth?: number, selectedYear?: number): Promise<Response<any, Record<string, any>>>;
    changePassword(res: Response, user: any, oldPassword: string, newPassword: string): Promise<Response<any, Record<string, any>>>;
    getUserDetails(res: Response, req: Request, user: any): Promise<Response<any, Record<string, any>>>;
}
