import { AppUsersStep } from 'src/app_users_steps/entities/app_users_step.entity';
import { ChangePasswordDto } from 'src/auth/dto/change-password.dto';
import { Group } from 'src/groups/entities/group.entity';
import { GroupsRepository } from 'src/groups/groups.repository';
import { EntityManager, Repository } from 'typeorm';
import { AppUserRepository } from './app_users.repository';
import { CreateAppUserDto } from './dto/create-app_user.dto';
import { UpdateAppUserDto } from './dto/update-app_user.dto';
import { AppUser } from './entities/app_user.entity';
import { ProvincesRepository } from 'src/provinces/provinces.repository';
export declare class AppUsersService {
    private readonly userEntity;
    private readonly userRepository;
    private readonly groupRepository;
    private readonly userStepsEntity;
    private readonly provinceRepository;
    constructor(userEntity: Repository<AppUser>, userRepository: AppUserRepository, groupRepository: GroupsRepository, userStepsEntity: Repository<AppUsersStep>, provinceRepository: ProvincesRepository);
    create(createAppUserDto: CreateAppUserDto, manager: EntityManager): Promise<AppUser>;
    findAll(take: number, skip: number, search: string): Promise<{
        count: number;
        data: {
            profile_picture: string;
            total_steps_count: number;
            user_groups: {
                icon: string;
                id: string;
                name: string;
                description: string;
                step_goal: string;
                goal_start_date: Date;
                goal_end_date: Date;
                status: number;
                zipcode: string;
                is_shareable: boolean;
                owner_id: string;
                province_id: string;
                owner_role: string;
                created_at: Date;
                updated_at: Date;
                deleted_at: Date;
                province: import("../provinces/entities/province.entity").Province;
                group_owner: AppUser;
                user_groups: AppUser[];
                news: import("../news/entities/news.entity").News[];
            }[];
            id: string;
            name: string;
            email: string;
            password: string;
            step_goal: string;
            social_id: string;
            social_type: string;
            device_id: string;
            password_reset_token: string;
            password_reset_token_expiry: string;
            current_streak: string;
            best_streak: string;
            whatsapp_no: string;
            is_email_verified: boolean;
            verification_token: string;
            verification_token_expiry: string;
            access_token: string;
            access_token_expiry: string;
            streak_updated_at: string;
            status: number;
            zipcode: string;
            fcm_token: string;
            province_id: string;
            notify: boolean;
            is_step_tracking_enabled: boolean;
            updated_at: Date;
            created_at: Date;
            deleted_at: Date;
            user_steps: AppUsersStep[];
            user_notifications: import("../notifications/entities/user-notification.entity").UserNotification;
            user_achievements: import("../achievements/entities/user-achievement.entity").UserAchievement[];
            group: Group[];
            user_streaks: import("../streaks/entities/user-streak.entity").UserStreak[];
            province: import("../provinces/entities/province.entity").Province;
        }[];
    }>;
    update(id: string, updateAppUserDto: UpdateAppUserDto): Promise<{
        message: string;
        data: {
            profile_picture: string;
            id: string;
            name: string;
            email: string;
            password: string;
            step_goal: string;
            social_id: string;
            social_type: string;
            device_id: string;
            password_reset_token: string;
            password_reset_token_expiry: string;
            current_streak: string;
            best_streak: string;
            whatsapp_no: string;
            is_email_verified: boolean;
            verification_token: string;
            verification_token_expiry: string;
            access_token: string;
            access_token_expiry: string;
            streak_updated_at: string;
            status: number;
            zipcode: string;
            fcm_token: string;
            province_id: string;
            notify: boolean;
            is_step_tracking_enabled: boolean;
            updated_at: Date;
            created_at: Date;
            deleted_at: Date;
            user_steps: AppUsersStep[];
            user_notifications: import("../notifications/entities/user-notification.entity").UserNotification;
            user_achievements: import("../achievements/entities/user-achievement.entity").UserAchievement[];
            group: Group[];
            user_streaks: import("../streaks/entities/user-streak.entity").UserStreak[];
            user_groups: Group[];
            province: import("../provinces/entities/province.entity").Province;
        };
    }>;
    forgotPassword(email: string): Promise<{
        userDetail: Partial<AppUser> | null;
        token: string | null;
    }>;
    resetPassword(email: string, token: string, newPassword: string): Promise<void>;
    verifyUserEmail(token: string): Promise<void>;
    verifyUserEmailByAdmin(email: string): Promise<void>;
    login(createAppUserDto: CreateAppUserDto, manager: EntityManager, deviceId: string, fcmToken: string): Promise<AppUser>;
    findUserStepsForSingleSteps(userId: string, fromDate?: string): Promise<unknown>;
    changePassword(changePassDto: ChangePasswordDto): Promise<{
        profile_picture: string;
        id: string;
        name: string;
        email: string;
        password: string;
        step_goal: string;
        social_id: string;
        social_type: string;
        device_id: string;
        password_reset_token: string;
        password_reset_token_expiry: string;
        current_streak: string;
        best_streak: string;
        whatsapp_no: string;
        is_email_verified: boolean;
        verification_token: string;
        verification_token_expiry: string;
        access_token: string;
        access_token_expiry: string;
        streak_updated_at: string;
        status: number;
        zipcode: string;
        fcm_token: string;
        province_id: string;
        notify: boolean;
        is_step_tracking_enabled: boolean;
        updated_at: Date;
        created_at: Date;
        deleted_at: Date;
        user_steps: AppUsersStep[];
        user_notifications: import("../notifications/entities/user-notification.entity").UserNotification;
        user_achievements: import("../achievements/entities/user-achievement.entity").UserAchievement[];
        group: Group[];
        user_streaks: import("../streaks/entities/user-streak.entity").UserStreak[];
        user_groups: Group[];
        province: import("../provinces/entities/province.entity").Province;
    }>;
    logout(id: string): Promise<void>;
    findUser(id: string): Promise<{
        profile_picture: string;
        id: string;
        name: string;
        email: string;
        password: string;
        step_goal: string;
        social_id: string;
        social_type: string;
        device_id: string;
        password_reset_token: string;
        password_reset_token_expiry: string;
        current_streak: string;
        best_streak: string;
        whatsapp_no: string;
        is_email_verified: boolean;
        verification_token: string;
        verification_token_expiry: string;
        access_token: string;
        access_token_expiry: string;
        streak_updated_at: string;
        status: number;
        zipcode: string;
        fcm_token: string;
        province_id: string;
        notify: boolean;
        is_step_tracking_enabled: boolean;
        updated_at: Date;
        created_at: Date;
        deleted_at: Date;
        user_steps: AppUsersStep[];
        user_notifications: import("../notifications/entities/user-notification.entity").UserNotification;
        user_achievements: import("../achievements/entities/user-achievement.entity").UserAchievement[];
        group: Group[];
        user_streaks: import("../streaks/entities/user-streak.entity").UserStreak[];
        user_groups: Group[];
        province: import("../provinces/entities/province.entity").Province;
    }>;
    skipLogin(createAppUserDto: CreateAppUserDto, fcmToken: any): Promise<{
        profile_picture: string;
        id: string;
        name: string;
        email: string;
        password: string;
        step_goal: string;
        social_id: string;
        social_type: string;
        device_id: string;
        password_reset_token: string;
        password_reset_token_expiry: string;
        current_streak: string;
        best_streak: string;
        whatsapp_no: string;
        is_email_verified: boolean;
        verification_token: string;
        verification_token_expiry: string;
        access_token: string;
        access_token_expiry: string;
        streak_updated_at: string;
        status: number;
        zipcode: string;
        fcm_token: string;
        province_id: string;
        notify: boolean;
        is_step_tracking_enabled: boolean;
        updated_at: Date;
        created_at: Date;
        deleted_at: Date;
        user_steps: AppUsersStep[];
        user_notifications: import("../notifications/entities/user-notification.entity").UserNotification;
        user_achievements: import("../achievements/entities/user-achievement.entity").UserAchievement[];
        group: Group[];
        user_streaks: import("../streaks/entities/user-streak.entity").UserStreak[];
        user_groups: Group[];
        province: import("../provinces/entities/province.entity").Province;
    }>;
    associateUserWithGroup(userId: string, groupId: string): Promise<void>;
    getUserGroups(userId: string, search: string): Promise<any>;
    getExploreGroups(userId: string, search: string): Promise<any>;
    updateUserGoals(goal: string): Promise<any>;
    getStepGoals(): Promise<{
        goal: string;
    }>;
    removeUserFromGroup(userId: string, groupId: string): Promise<void>;
    deleteUser(id: string): Promise<import("typeorm").DeleteResult>;
    updateStepTrackingPermission(userId: string, isStepTrackingEnabled: boolean): Promise<import("typeorm").UpdateResult>;
}
