import { Document } from 'mongoose';
import { BaseEntity } from '../../common/entities/base.entity';
import { NotificationPrefs } from '../../common/schemas/notification-prefs.schema';
export type TeacherDocument = Teacher & Document;
declare class CustomDocument {
    title: string;
    publishedBy?: string;
    documentUrl: string;
    uploadDate: Date;
}
declare class CustomImage {
    title?: string;
    imageUrl: string;
    uploadDate: Date;
}
declare class EducationEntry {
    university?: string;
    degree?: string;
    institution?: string;
    startDate?: Date;
    endDate?: Date;
    city?: string;
    grade?: string;
}
export declare class Teacher extends BaseEntity {
    name: string;
    uniqueId?: string;
    email?: string;
    password?: string;
    role: string;
    isActive: boolean;
    designation?: string;
    subject?: string;
    phone?: string;
    joinDate?: Date;
    dateOfBirth?: Date;
    fatherName?: string;
    motherName?: string;
    mobileNumber?: string;
    adhaarNumber?: string;
    panNumber?: string;
    address: string;
    highestQualification: string;
    photoUrl?: string;
    signature?: string;
    customDocuments?: CustomDocument[];
    customImages?: CustomImage[];
    education?: EducationEntry[];
    bankName?: string;
    accountNumber?: string;
    accountType?: string;
    ifscNumber?: string;
    pfMemberId?: string;
    pfAccountNumber?: string;
    employeeName?: string;
    kycStatus?: string;
    schoolLeavingDate?: Date;
    leavingReason?: string;
    notificationPrefs?: NotificationPrefs;
}
export declare const TeacherSchema: import("mongoose").Schema<Teacher, import("mongoose").Model<Teacher, any, any, any, Document<unknown, any, Teacher, any> & Teacher & Required<{
    _id: string;
}>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Teacher, Document<unknown, {}, import("mongoose").FlatRecord<Teacher>, {}> & import("mongoose").FlatRecord<Teacher> & Required<{
    _id: string;
}>>;
export {};
