import { PrismaService } from '../prisma/prisma.service';
import { Status } from '@prisma/client';
import { MailService } from '../mail/mail.service';
export declare class AdminService {
    private prisma;
    private mailService;
    constructor(prisma: PrismaService, mailService: MailService);
    getAdminDashboardStats(): Promise<{
        totalStudents: number;
        activeStudents: number;
        pendingApplications: number;
        activeCourses: number;
        totalRevenue: number;
        recentApplications: {
            id: number;
            fullName: string;
            email: string;
            academicProgram: string;
            status: import("@prisma/client").$Enums.Status;
            createdAt: Date;
        }[];
    }>;
    getPendingApplications(): Promise<{
        id: number;
        fullName: string;
        email: string;
        phone: string;
        academicProgram: string;
        password: string;
        gender: string | null;
        academicId: string | null;
        dob: Date | null;
        avatar: string | null;
        level: string | null;
        role: import("@prisma/client").$Enums.Role;
        status: import("@prisma/client").$Enums.Status;
        emailVerified: boolean;
        otp: string | null;
        otpExpires: Date | null;
        createdAt: Date;
        updatedAt: Date;
    }[]>;
    getAllStudents(): Promise<{
        id: number;
        fullName: string;
        email: string;
        academicProgram: string;
        status: import("@prisma/client").$Enums.Status;
        createdAt: Date;
    }[]>;
    updateStudentStatus(id: number, status: Status): Promise<{
        id: number;
        fullName: string;
        status: import("@prisma/client").$Enums.Status;
    }>;
    getPayments(): Promise<({
        user: {
            fullName: string;
            email: string;
        };
    } & {
        id: number;
        status: string;
        userId: number;
        amount: number;
        date: Date;
    })[]>;
    getSystemConfig(): Promise<{
        id: number;
        institutionName: string;
        primaryColor: string;
        logoUrl: string | null;
    }>;
    updateSystemConfig(data: {
        institutionName?: string;
        primaryColor?: string;
        logoUrl?: string;
    }): Promise<{
        id: number;
        institutionName: string;
        primaryColor: string;
        logoUrl: string | null;
    }>;
    verifyUserEmail(id: number): Promise<{
        id: number;
        fullName: string;
        email: string;
        emailVerified: boolean;
    }>;
}
