import { AuthService } from './auth.service';
import { SignupDto } from './dto/signup.dto';
import { LoginDto } from './dto/login.dto';
import { ForgotPasswordDto } from './dto/forgot-password.dto';
import type { Response } from 'express';
import { ConfigService } from '@nestjs/config';
import { AdminLoginDto } from './dto/admin-login.dto';
import { AdminSignupDto } from './dto/adminsignup.dto';
import { AdminVerify2FADto } from './dto/admin-verify-2fa.dto';
import * as Multer from 'multer';
import { SpacesService } from '../spaces/spaces.service';
import { VerifyOtpDto, ChangePasswordDto } from './dto/VerifyOtpDto';
import { UpdateSalonInfoDto } from './dto/update-salon-info.dto';
export declare class AuthController {
    private readonly authService;
    private readonly configService;
    private readonly spacesService;
    constructor(authService: AuthService, configService: ConfigService, spacesService: SpacesService);
    signup(dto: SignupDto): Promise<{
        message: string;
        salonId: any;
    }>;
    updateSalonInfo(req: any, dto: UpdateSalonInfoDto): Promise<(import("mongoose").Document<unknown, {}, import("../model/schemas/salon.schema").Salon, {}, {}> & import("../model/schemas/salon.schema").Salon & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | null>;
    salonForgotPassword(dto: ForgotPasswordDto): Promise<{
        message: string;
        salonId: any;
    }>;
    stylistForgotPassword(dto: ForgotPasswordDto): Promise<{
        message: string;
        stylistId: any;
    }>;
    stylistChangePassword(req: any, dto: ChangePasswordDto): Promise<{
        message: string;
    }>;
    verifyOtp(dto: VerifyOtpDto): Promise<{
        message: string;
    }>;
    verifyEmail(token: string, res: Response): Promise<void>;
    adminSignup(dto: AdminSignupDto, req: any): Promise<void>;
    superadminSignup(dto: AdminSignupDto): Promise<void>;
    login(dto: LoginDto): Promise<{
        token: string;
        salon: {
            id: import("mongoose").Types.ObjectId;
            name: string;
            imageUrl: string;
        };
    }>;
    adminLogin(dto: AdminLoginDto): Promise<{
        token: string;
        setupRequired: boolean;
        admin: {
            id: import("mongoose").Types.ObjectId;
            email: string;
            role: import("../common/enums").AdminRole;
            is2FAEnabled: boolean;
        };
        setupToken?: undefined;
        adminResponse?: undefined;
    } | {
        setupRequired: boolean;
        setupToken: string;
        admin: {
            id: import("mongoose").Types.ObjectId;
            email: string;
            role: import("../common/enums").AdminRole;
            is2FAEnabled: boolean;
        };
        token?: undefined;
        adminResponse?: undefined;
    } | {
        token: string;
        setupRequired: boolean;
        adminResponse: {
            id: import("mongoose").Types.ObjectId;
            email: string;
            role: import("../common/enums").AdminRole;
            is2FAEnabled: boolean;
        };
        admin?: undefined;
        setupToken?: undefined;
    }>;
    adminForgotPassword(dto: ForgotPasswordDto): Promise<{
        message: string;
        adminId: any;
    }>;
    verifyAdminOtp(dto: VerifyOtpDto): Promise<{
        message: string;
    }>;
    verifyLogin2FA(req: any, dto: AdminVerify2FADto): Promise<{
        token: string;
        admin: {
            id: import("mongoose").Types.ObjectId;
            email: string;
            role: import("../common/enums").AdminRole;
            is2FAEnabled: boolean;
        };
    }>;
    getProfile(req: any): Promise<{
        id: import("mongoose").Types.ObjectId;
        name: string;
        email: string;
        imageUrl: string | null;
        timezone: string;
        verified: boolean;
        admin_approved: boolean;
        salon_phone: string | null;
        salon_email: string | null;
        website: string | null;
        address: string | null;
        social_links: import("mongoose").FlattenMaps<{
            instagram?: string;
            facebook?: string;
            google?: string;
            tiktok?: string;
        }> | null;
        opening_hours: import("mongoose").FlattenMaps<{
            day: import("../model/schemas/salon.schema").WeekDay;
            open: string;
            close: string;
            closed: boolean;
        }>[];
        closing_days: string[];
        owner_name: string | null;
        holidays: import("mongoose").FlattenMaps<{
            date: Date;
            reason?: string;
        }>[];
    }>;
    updateFcmToken(req: any, fcmToken: string): Promise<{
        success: boolean;
    } | undefined>;
    addImage(req: any, file: Multer.file): Promise<{
        message: string;
    }>;
    getAdminProfile(req: any): Promise<{
        id: import("mongoose").Types.ObjectId;
        email: string;
        role: import("../common/enums").AdminRole;
        is2FAEnabled: boolean;
    }>;
    setup2FA(req: any): Promise<{
        qrCode: any;
        manualKey: any;
    }>;
    verify2FA(req: any, dto: AdminVerify2FADto): Promise<{
        message: string;
    }>;
}
