import { Model } from "mongoose";
import { TrainingPlanDocument } from "./schemas/training-plan.schema";
import { CreateTrainingPlanDto } from "./dto/create-training-plan.dto";
import { UpdateTrainingPlanDto } from "./dto/update-training-plan.dto";
import { Request, Response } from "express";
import { ResponseService } from "src/common/service/response.service";
import { WorkoutSessionDocument } from "src/workout-session/schemas/workout-session.schema";
export declare class TrainingPlanService {
    private trainingPlanModel;
    private workoutSessionModel;
    private readonly resService;
    constructor(trainingPlanModel: Model<TrainingPlanDocument>, workoutSessionModel: Model<WorkoutSessionDocument>, resService: ResponseService);
    private pickLang;
    private formatDuration;
    private startOfWeekUTC;
    private buildSessionProgress;
    private exerciseLookupStages;
    createPlan(body: CreateTrainingPlanDto, req: Request, res: Response, user: any): Promise<Response<any, Record<string, any>>>;
    getAllPlans(req: Request, res: Response, page: number, limit: number, search: string, status: string, user: any): Promise<Response<any, Record<string, any>>>;
    getAllAdminPlans(req: Request, res: Response, page: number, limit: number, search: string, status: string): Promise<Response<any, Record<string, any>>>;
    getAllPlansWithoutPagination(req: Request, res: Response, search: string, status: string, user: any): Promise<Response<any, Record<string, any>>>;
    getPlanById(id: string, req: Request, res: Response, user: any): Promise<Response<any, Record<string, any>>>;
    getPlanFullDetailById(id: string, req: Request, res: Response, user: any): Promise<Response<any, Record<string, any>>>;
    updatePlan(id: string, dto: UpdateTrainingPlanDto, req: Request, res: Response, user: any): Promise<Response<any, Record<string, any>>>;
    deletePlan(id: string, req: Request, res: Response, user: any): Promise<Response<any, Record<string, any>>>;
}
