import { Model } from 'mongoose';
import { AcademicYearRepository } from './academic-year.repository';
import { CreateAcademicYearDto } from './dto/create-academic-year.dto';
import { UpdateAcademicYearDto } from './dto/update-academic-year.dto';
import { AuditService } from 'src/audit/audit.service';
import { RequestContext } from 'src/common/context/request-context';
import { StudentDocument } from 'src/students/schemas/student.schema';
export declare class AcademicYearService {
    private readonly repo;
    private readonly audit;
    private readonly studentModel;
    constructor(repo: AcademicYearRepository, audit: AuditService, studentModel: Model<StudentDocument>);
    create(dto: CreateAcademicYearDto, ctx: RequestContext): Promise<import("./academic-year.schema").AcademicYear>;
    findAll(includeInactive?: boolean): Promise<import("./academic-year.schema").AcademicYear[]>;
    findOne(id: string): Promise<import("./academic-year.schema").AcademicYear>;
    getCurrent(): Promise<import("./academic-year.schema").AcademicYear | null>;
    findForTopbar(userId?: string, role?: string): Promise<{
        _id: string;
        name: string;
        label: string;
        displayLabel: string;
        isCurrent: boolean;
        isActive: boolean;
    }[]>;
    setCurrent(id: string, ctx: RequestContext): Promise<import("./academic-year.schema").AcademicYear>;
    setActive(id: string, active: boolean, ctx: RequestContext): Promise<import("./academic-year.schema").AcademicYear>;
    update(id: string, dto: UpdateAcademicYearDto, ifMatch: string | undefined, ctx: RequestContext): Promise<import("./academic-year.schema").AcademicYear>;
    remove(id: string, ctx: RequestContext): Promise<import("./academic-year.schema").AcademicYear>;
}
