import * as Multer from 'multer';
import { ServiceService } from './service.service';
import { CreateServiceDto } from './dto/create-service.dto';
import { UpdateServiceDto } from './dto/update-service.dto';
import { Service } from '../model/schemas/service.schema';
import { UpdateTrainingDataDto } from './dto/update-training-data.dto';
import { CreateCategoryDto, UpdateCategoryDto, ReorderCategoryDto } from './dto/category.dto';
import { CategoryService } from './category.service';
import { Category } from '../model/schemas/category.schema';
import { DuplicateServiceDto } from './dto/duplicate.dto';
import { SpacesService } from '../spaces/spaces.service';
export declare class ServiceController {
    private readonly serviceService;
    private readonly categoryService;
    private readonly spacesService;
    constructor(serviceService: ServiceService, categoryService: CategoryService, spacesService: SpacesService);
    create(req: any, dto: CreateServiceDto): Promise<import("mongoose").Document<unknown, {}, Service, {}, {}> & Service & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    duplicateService(req: any, dto: DuplicateServiceDto): Promise<import("mongoose").Document<unknown, {}, Service, {}, {}> & Service & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    findAll(req: any, fields?: string, page?: number, limit?: number, status?: 'active' | 'inactive'): Promise<(import("mongoose").FlattenMaps<Service> & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    })[]>;
    findbyCategories(req: any, fields?: string, page?: number, limit?: number): Promise<{
        data: {
            category: string;
            categoryId: string;
            description: string;
            services: any[];
        }[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    findOne(id: string): Promise<(import("mongoose").FlattenMaps<Service> & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | null>;
    update(id: string, dto: UpdateServiceDto): Promise<import("mongoose").Document<unknown, {}, Service, {}, {}> & Service & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    remove(id: string): Promise<void>;
    uploadServiceImage(serviceId: string, file: Multer.file, req: any): Promise<{
        imageUrl: string;
    }>;
    getTrainingData(req: any): Promise<import("mongoose").FlattenMaps<import("../model/schemas/salon.schema").Salon> & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    updateTrainingData(req: any, dto: UpdateTrainingDataDto): 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;
    }>;
    getAll(req: any): Promise<any[]>;
    getOne(categoryId: string): Promise<any>;
    createCategory(req: any, dto: CreateCategoryDto): Promise<import("mongoose").Document<unknown, {}, Category, {}, {}> & Category & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    updateCategory(categoryId: string, dto: UpdateCategoryDto): Promise<any>;
    deleteCategory(categoryId: string): Promise<{
        success: boolean;
    }>;
    reorderCategories(req: any, dto: ReorderCategoryDto): Promise<{
        success: boolean;
    }>;
}
