import { ResponseService } from "src/common/service/response.service";
import { UserDocument } from "src/user/schemas/user.schema";
import { CityDocument } from "src/training/schemas/cities.schema";
import { BuddyRequestDocument } from "./schema/buddy-requests.schema";
import { TrainingHomeGymDocument } from "src/training/schemas/training-homegym.schema";
import { Request, Response } from "express";
import { Model } from "mongoose";
import { SearchBuddiesDto } from "./dto/search-buddies.dto";
export declare class BuddiesService {
    private userModel;
    private cityModel;
    private trainingHomeGymModel;
    private buddyRequestModel;
    private readonly resService;
    constructor(userModel: Model<UserDocument>, cityModel: Model<CityDocument>, trainingHomeGymModel: Model<TrainingHomeGymDocument>, buddyRequestModel: Model<BuddyRequestDocument>, resService: ResponseService);
    private paginationMeta;
    private buildUserFilters;
    private findUsersInGyms;
    private searchByUsername;
    private searchByGym;
    private searchByLocation;
    findNearbyBuddies(userId: string, radiusInKm: number, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    searchBuddies(userId: string, body: SearchBuddiesDto, req: Request, res: Response, lang: string): Promise<Response<any, Record<string, any>>>;
    getBuddyProfile(currentUserId: string, buddyId: string, req: Request, res: Response, lang: string): Promise<Response<any, Record<string, any>>>;
    sendBuddyRequest(senderId: string, receiverId: string, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    getBuddyPendingRequests(userId: string, req: Request, res: Response, lang: string, page?: number, limit?: number): Promise<Response<any, Record<string, any>>>;
    getBuddyRecentRequests(userId: string, req: Request, res: Response, lang: string): Promise<Response<any, Record<string, any>>>;
    unsendBuddyRequest(senderId: string, receiverId: string, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    updateBuddyRequest(userId: string, requestId: string, status: string, req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
    globalSearch(userId: string, query: string, page: number, limit: number, req: Request, res: Response, lang: string): Promise<Response<any, Record<string, any>>>;
}
