import { CreateTeacherDto } from './dto/create-teacher.dto';
import { UpdateTeacherDto } from './dto/update-teacher.dto';
import { TeachersService } from './teachers.service';
import { Model } from 'mongoose';
import { SectionDocument } from '../sections/schemas/section.schema';
export declare class TeachersController {
    private readonly teachersService;
    private readonly sectionModel;
    constructor(teachersService: TeachersService, sectionModel: Model<SectionDocument>);
    create(dto: CreateTeacherDto): Promise<import("mongoose").FlattenMaps<import("./schemas/teacher.schema").Teacher & import("mongoose").Document<unknown, any, any, Record<string, any>> & Required<{
        _id: string;
    }>>>;
    findAll(isActive?: string): import("mongoose").Query<(import("mongoose").FlattenMaps<import("./schemas/teacher.schema").TeacherDocument> & Required<{
        _id: string;
    }>)[], import("mongoose").Document<unknown, {}, import("./schemas/teacher.schema").TeacherDocument, {}> & import("./schemas/teacher.schema").Teacher & import("mongoose").Document<unknown, any, any, Record<string, any>> & Required<{
        _id: string;
    }>, {}, import("./schemas/teacher.schema").TeacherDocument, "find", {}>;
    search(query?: string, limit?: string): Promise<(import("mongoose").FlattenMaps<import("./schemas/teacher.schema").TeacherDocument> & Required<{
        _id: string;
    }>)[]>;
    getMinimal(): Promise<(import("mongoose").FlattenMaps<import("./schemas/teacher.schema").TeacherDocument> & Required<{
        _id: string;
    }>)[]>;
    me(userId: string): import("mongoose").Query<(import("mongoose").FlattenMaps<import("./schemas/teacher.schema").TeacherDocument> & Required<{
        _id: string;
    }>) | null, import("mongoose").Document<unknown, {}, import("./schemas/teacher.schema").TeacherDocument, {}> & import("./schemas/teacher.schema").Teacher & import("mongoose").Document<unknown, any, any, Record<string, any>> & Required<{
        _id: string;
    }>, {}, import("./schemas/teacher.schema").TeacherDocument, "findOne", {}>;
    mySections(teacherId: string): Promise<(import("mongoose").FlattenMaps<SectionDocument> & Required<{
        _id: string;
    }>)[]>;
    updateOwnPassword(userId: string, currentPassword: string, newPassword: string): Promise<{
        message: string;
    }>;
    backfillIds(): Promise<{
        total: number;
        updated: number;
        failed: number;
    }>;
    findOne(id: string): import("mongoose").Query<(import("mongoose").FlattenMaps<import("./schemas/teacher.schema").TeacherDocument> & Required<{
        _id: string;
    }>) | null, import("mongoose").Document<unknown, {}, import("./schemas/teacher.schema").TeacherDocument, {}> & import("./schemas/teacher.schema").Teacher & import("mongoose").Document<unknown, any, any, Record<string, any>> & Required<{
        _id: string;
    }>, {}, import("./schemas/teacher.schema").TeacherDocument, "findOne", {}>;
    toggleActive(id: string): Promise<{
        _id: string;
        isActive: boolean;
    }>;
    resetPassword(id: string, newPassword: string): Promise<{
        message: string;
    }>;
    update(id: string, dto: UpdateTeacherDto): Promise<import("mongoose").FlattenMaps<import("./schemas/teacher.schema").Teacher & import("mongoose").Document<unknown, any, any, Record<string, any>> & Required<{
        _id: string;
    }>> | undefined>;
    remove(id: string): Promise<{
        message: string;
    }>;
}
