import { CreateTrainingCalloutDto } from "./dto/create-training-callout.dto";
import { UpdateTrainingCalloutDto } from "./dto/update-training-callout.dto";
import { ResponseService } from "src/common/service/response.service";
import { Request, Response } from "express";
import { BuddyRequestDocument } from "src/buddies/schema/buddy-requests.schema";
import { TrainingHomeGymDocument } from "src/training/schemas/training-homegym.schema";
import { Model } from "mongoose";
import { TrainingCalloutDocument } from "./schema/training-callout.schema";
import { GetTrainingCalloutDto } from "./dto/get-training-callout.dto";
import { UserDocument } from "src/user/schemas/user.schema";
export declare class TrainingCalloutService {
    private trainingCalloutModel;
    private buddyModel;
    private userModel;
    private trainingHomeGymModel;
    private readonly resService;
    constructor(trainingCalloutModel: Model<TrainingCalloutDocument>, buddyModel: Model<BuddyRequestDocument>, userModel: Model<UserDocument>, trainingHomeGymModel: Model<TrainingHomeGymDocument>, resService: ResponseService);
    private paginationMeta;
    private getAllTrainingCallouts;
    createTrainingCallout(userId: string, body: CreateTrainingCalloutDto, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    updateTrainingCallout(userId: string, calloutId: string, body: UpdateTrainingCalloutDto, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    deleteTrainingCallout(userId: string, calloutId: string, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    joinTrainingCallout(userId: string, calloutId: string, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    getMyJoinedTrainingCallouts(userId: string, page: number, limit: number, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    getTrainingCallouts(userId: string, body: GetTrainingCalloutDto, req: Request, res: Response, lang: string): Promise<Response<any, Record<string, any>>>;
    private searchCalloutsByUsername;
    private searchCalloutsByGym;
    private searchCalloutsByLocation;
    private findCallouts;
    quitTrainingCallout(userId: string, calloutId: string, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    getBuddySuggestionsFromCallouts(userId: string, req: Request, res: Response, lang: string): Promise<Response<any, Record<string, any>>>;
    getMyJoinedCallout(userId: string, page: number, limit: number, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
}
