import { UsersService } from './users.service';
import { UpdateProfileDto, AdminUpdateUserDto } from './dto/update-user.dto';
export declare class UsersController {
    private users;
    constructor(users: UsersService);
    getMe(user: any): Promise<{
        id: string;
        name: string;
        profilePicture: string | null;
        bio: string | null;
        headline: string | null;
        profession: string | null;
        company: string | null;
        location: string | null;
        website: string | null;
        linkedin: string | null;
        skills: import("@prisma/client/runtime/library").JsonValue;
        achievements: import("@prisma/client/runtime/library").JsonValue;
        hobbies: import("@prisma/client/runtime/library").JsonValue;
        role: import("@prisma/client").$Enums.UserRole;
        status: import("@prisma/client").$Enums.UserStatus;
        createdAt: Date;
        membership: {
            type: import("@prisma/client").$Enums.MembershipType;
            validUntil: Date | null;
        } | null;
    } | null>;
    updateMe(user: any, dto: UpdateProfileDto): Promise<{
        id: string;
        name: string;
        profilePicture: string | null;
        bio: string | null;
        headline: string | null;
        profession: string | null;
        company: string | null;
        location: string | null;
        website: string | null;
        linkedin: string | null;
        skills: import("@prisma/client/runtime/library").JsonValue;
        achievements: import("@prisma/client/runtime/library").JsonValue;
        hobbies: import("@prisma/client/runtime/library").JsonValue;
        role: import("@prisma/client").$Enums.UserRole;
        status: import("@prisma/client").$Enums.UserStatus;
        createdAt: Date;
        membership: {
            type: import("@prisma/client").$Enums.MembershipType;
            validUntil: Date | null;
        } | null;
    } | null>;
    deleteMe(user: any): Promise<{
        id: string;
        phone: string | null;
        email: string | null;
        passwordHash: string | null;
        name: string;
        profilePicture: string | null;
        bio: string | null;
        headline: string | null;
        profession: string | null;
        company: string | null;
        location: string | null;
        website: string | null;
        linkedin: string | null;
        skills: import("@prisma/client/runtime/library").JsonValue;
        achievements: import("@prisma/client/runtime/library").JsonValue;
        hobbies: import("@prisma/client/runtime/library").JsonValue;
        role: import("@prisma/client").$Enums.UserRole;
        status: import("@prisma/client").$Enums.UserStatus;
        fcmToken: string | null;
        lastActiveAt: Date | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    findAll(query: any): Promise<{
        users: ({
            id: string;
            name: string;
            profilePicture: string | null;
            bio: string | null;
            headline: string | null;
            profession: string | null;
            company: string | null;
            location: string | null;
            website: string | null;
            linkedin: string | null;
            skills: import("@prisma/client/runtime/library").JsonValue;
            achievements: import("@prisma/client/runtime/library").JsonValue;
            hobbies: import("@prisma/client/runtime/library").JsonValue;
            role: import("@prisma/client").$Enums.UserRole;
            status: import("@prisma/client").$Enums.UserStatus;
            createdAt: Date;
            membership: {
                type: import("@prisma/client").$Enums.MembershipType;
                validUntil: Date | null;
            } | null;
        } | null)[];
        total: number;
        page: number;
        limit: number;
    }>;
    getPending(): Promise<({
        id: string;
        phone: string | null;
        email: string | null;
        name: string;
        profilePicture: string | null;
        bio: string | null;
        headline: string | null;
        profession: string | null;
        company: string | null;
        location: string | null;
        website: string | null;
        linkedin: string | null;
        skills: import("@prisma/client/runtime/library").JsonValue;
        achievements: import("@prisma/client/runtime/library").JsonValue;
        hobbies: import("@prisma/client/runtime/library").JsonValue;
        role: import("@prisma/client").$Enums.UserRole;
        status: import("@prisma/client").$Enums.UserStatus;
        createdAt: Date;
        membership: {
            type: import("@prisma/client").$Enums.MembershipType;
            validUntil: Date | null;
        } | null;
    } | null)[]>;
    findOne(id: string): Promise<{
        id: string;
        name: string;
        profilePicture: string | null;
        bio: string | null;
        headline: string | null;
        profession: string | null;
        company: string | null;
        location: string | null;
        website: string | null;
        linkedin: string | null;
        skills: import("@prisma/client/runtime/library").JsonValue;
        achievements: import("@prisma/client/runtime/library").JsonValue;
        hobbies: import("@prisma/client/runtime/library").JsonValue;
        role: import("@prisma/client").$Enums.UserRole;
        status: import("@prisma/client").$Enums.UserStatus;
        createdAt: Date;
        membership: {
            type: import("@prisma/client").$Enums.MembershipType;
            validUntil: Date | null;
        } | null;
    } | null>;
    findOneWithStats(id: string): Promise<{
        stats: {
            posts: number;
            comments: number;
            reactions: number;
        };
        id?: string | undefined;
        phone?: string | null | undefined;
        email?: string | null | undefined;
        name?: string | undefined;
        profilePicture?: string | null | undefined;
        bio?: string | null | undefined;
        headline?: string | null | undefined;
        profession?: string | null | undefined;
        company?: string | null | undefined;
        location?: string | null | undefined;
        website?: string | null | undefined;
        linkedin?: string | null | undefined;
        skills?: import("@prisma/client/runtime/library").JsonValue | undefined;
        achievements?: import("@prisma/client/runtime/library").JsonValue | undefined;
        hobbies?: import("@prisma/client/runtime/library").JsonValue | undefined;
        role?: import("@prisma/client").$Enums.UserRole | undefined;
        status?: import("@prisma/client").$Enums.UserStatus | undefined;
        lastActiveAt?: Date | null | undefined;
        createdAt?: Date | undefined;
        membership?: {
            type: import("@prisma/client").$Enums.MembershipType;
            validUntil: Date | null;
        } | null | undefined;
        _count?: {
            groupMemberships: number;
            feedPosts: number;
            feedReactions: number;
            feedComments: number;
        } | undefined;
    }>;
    adminUpdate(id: string, dto: AdminUpdateUserDto): Promise<{
        id: string;
        name: string;
        profilePicture: string | null;
        bio: string | null;
        headline: string | null;
        profession: string | null;
        company: string | null;
        location: string | null;
        website: string | null;
        linkedin: string | null;
        skills: import("@prisma/client/runtime/library").JsonValue;
        achievements: import("@prisma/client/runtime/library").JsonValue;
        hobbies: import("@prisma/client/runtime/library").JsonValue;
        role: import("@prisma/client").$Enums.UserRole;
        status: import("@prisma/client").$Enums.UserStatus;
        createdAt: Date;
        membership: {
            type: import("@prisma/client").$Enums.MembershipType;
            validUntil: Date | null;
        } | null;
    }>;
}
