import { PrismaService } from '../../prisma/prisma.service';
export declare class AdminService {
    private prisma;
    constructor(prisma: PrismaService);
    getStats(): Promise<{
        totalUsers: number;
        pendingUsers: number;
        approvedUsers: number;
        suspendedUsers: number;
        premiumMembers: number;
        totalGroups: number;
        totalPosts: number;
        usersByStatus: {
            status: string;
            count: number;
        }[];
        registrationsByDay: {
            date: string;
            count: number;
        }[];
    }>;
    findAllUsers(query: {
        status?: string;
        search?: string;
        page?: any;
        limit?: any;
    }): Promise<{
        users: {
            id: string;
            phone: string | null;
            email: string | null;
            name: string;
            profilePicture: string | null;
            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;
        }[];
        total: number;
        page: number;
        limit: number;
    }>;
    createUser(dto: {
        name: string;
        email?: string;
        phone?: string;
        password?: string;
        role?: string;
        membershipType?: string;
        status?: string;
    }): Promise<{
        id: string;
        phone: string | null;
        email: string | null;
        name: string;
        profilePicture: string | null;
        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;
    }>;
    findAllGroups(query: {
        search?: string;
        type?: string;
        page?: any;
        limit?: any;
    }): Promise<{
        groups: {
            id: string;
            name: string;
            createdAt: Date;
            _count: {
                messages: number;
                members: number;
            };
            type: import("@prisma/client").$Enums.GroupType;
            description: string | null;
        }[];
        total: number;
        page: number;
        limit: number;
    }>;
    updateUser(id: string, dto: {
        role?: string;
        status?: string;
        membershipType?: string;
        name?: string;
        email?: string;
        phone?: string;
        password?: string;
    }): Promise<{
        id: string;
        phone: string | null;
        email: string | null;
        name: string;
        profilePicture: string | null;
        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;
    }>;
}
