import * as Multer from 'multer';
import { StylistService, StylistResponse, StylistsWithMeta } from './stylist.service';
import { CreateStylistDto } from './dto/create-stylist.dto';
import { UpdateStylistDto } from './dto/update-stylist.dto';
import { AddVacationDto } from './dto/add-vacation.dto';
import { SpacesService } from '../spaces/spaces.service';
export declare class StylistController {
    private readonly stylistService;
    private readonly spacesService;
    constructor(stylistService: StylistService, spacesService: SpacesService);
    create(req: any, dto: CreateStylistDto): Promise<import("mongoose").Document<unknown, {}, import("../model/schemas/stylist.schema").Stylist, {}, {}> & import("../model/schemas/stylist.schema").Stylist & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    onboard(body: {
        stylistId: string;
    }): Promise<import("mongoose").Document<unknown, {}, import("../model/schemas/stylist.schema").Stylist, {}, {}> & import("../model/schemas/stylist.schema").Stylist & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    findAll(req: any, page?: number, limit?: number, active?: boolean, onVacation?: boolean): Promise<StylistsWithMeta>;
    findOne(id: string): Promise<StylistResponse>;
    findStylistperSalon(salonId: string): Promise<StylistsWithMeta>;
    verifyToken(token: string): Promise<{
        stylist: {
            id: any;
            name: string;
            email: string;
        };
        salon: {
            id: any;
            name: string;
        };
        token: string;
    }>;
    findStylistByService(serviceId: string): Promise<(import("mongoose").FlattenMaps<import("../model/schemas/stylist.schema").Stylist> & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    })[]>;
    update(id: string, dto: UpdateStylistDto): Promise<import("mongoose").FlattenMaps<import("../model/schemas/stylist.schema").Stylist> & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    addVacation(stylistId: string, dto: AddVacationDto): Promise<{
        start: Date;
        end: Date;
        reason?: string;
    }[]>;
    removeVacation(vacationId: string): Promise<{
        message: string;
    }>;
    addImage(stylistId: string, file: Multer.file): Promise<void>;
}
