import { Document } from 'mongoose';
import { BaseEntity } from '../../common/entities/base.entity';
import { NotificationPrefs } from '../../common/schemas/notification-prefs.schema';
export type StudentDocument = Student & Document;
declare class ParentInfo {
    name?: string;
    email?: string;
    occupation?: string;
    monthlyIncome?: string;
    phone?: string;
    whatsapp?: string;
}
declare class Documents {
    photoUrl?: string;
    fatherPhotoUrl?: string;
    motherPhotoUrl?: string;
    birthCertificateUrl?: string;
    scstCertificateUrl?: string;
    leavingCertificateUrl?: string;
    vaccineCardUrl?: string;
}
declare class CustomDocument {
    title: string;
    publishedBy?: string;
    documentUrl: string;
    uploadDate: Date;
}
declare class CustomImage {
    title?: string;
    imageUrl: string;
    uploadDate: Date;
}
declare class EducationEntry {
    degree: string;
    institution: string;
    startDate: Date;
    endDate?: Date;
    grade?: string;
}
export declare class Student extends BaseEntity {
    name: string;
    uniqueId?: string;
    rollNumber: string;
    email?: string;
    password?: string;
    role: string;
    classId: string;
    sectionId: string;
    academicYearId: string;
    gender: string;
    dateOfBirth: Date;
    admissionDate?: Date;
    motherTongue?: string;
    religion?: string;
    caste?: string;
    mediumOfInstruction?: string;
    nationality?: string;
    previousSchoolName?: string;
    tcIssued?: boolean;
    clearedAllDues?: boolean;
    tcNumber?: string;
    bloodGroup?: string;
    heightCm?: string;
    weightKg?: string;
    medicalConditions?: string;
    hasAllergies?: boolean;
    allergyDetails?: string;
    emergencyMedicalInstructions?: string;
    guardianName?: string;
    guardianRelation?: string;
    phone?: string;
    whatsapp?: string;
    address?: string;
    transportRequired?: boolean;
    routePickupPoint?: string;
    isActive: boolean;
    leavingDate?: Date;
    leavingReason?: string;
    father?: ParentInfo;
    mother?: ParentInfo;
    documents?: Documents;
    customDocuments?: CustomDocument[];
    customImages?: CustomImage[];
    education?: EducationEntry[];
    profileImageUrl?: string;
    notificationPrefs?: NotificationPrefs;
}
export declare const StudentSchema: import("mongoose").Schema<Student, import("mongoose").Model<Student, any, any, any, Document<unknown, any, Student, any> & Student & Required<{
    _id: string;
}>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Student, Document<unknown, {}, import("mongoose").FlatRecord<Student>, {}> & import("mongoose").FlatRecord<Student> & Required<{
    _id: string;
}>>;
export {};
