import { subject as _subject, period as _period } from "ecoledirecte-api-types/v3";
import { ExpandedBase64, expandedBase64Json } from "../classes";
export declare class Period {
    code: string;
    name: string;
    yearly: boolean;
    closed: boolean;
    start: Date;
    end: Date;
    mockExam: boolean;
    headcount?: number;
    rank?: number;
    headTeacher?: string;
    appraisals: {
        CE?: string;
        PP?: string;
        VS?: string;
    };
    class: {
        appraisal?: string;
        averageGrade?: number;
    };
    council: {
        start?: Date;
        end?: Date;
        room?: string;
        verdict?: string;
    };
    calcDate?: Date;
    subjects: Array<Subject>;
    _raw: _period;
    constructor(o: _period);
    toJSON(): periodJson;
}
export interface periodJson {
    code: string;
    name: string;
    yearly: boolean;
    closed: boolean;
    start: Date;
    end: Date;
    mockExam: boolean;
    headcount?: number;
    rank?: number;
    headTeacher?: string;
    appraisals: {
        CE?: string;
        PP?: string;
        VS?: string;
    };
    class: {
        appraisal?: string;
        averageGrade?: number;
    };
    council: {
        start?: Date;
        end?: Date;
        room?: string;
        verdict?: string;
    };
    calcDate?: Date;
    subjects: Array<subjectJson>;
    _raw: _period;
}
export declare class Subject {
    id: number;
    code: string;
    name: string;
    weight: number;
    headcount: number;
    rank: number;
    minorSubject: boolean;
    minorSubjectCode?: string;
    group: boolean;
    groupId: number;
    appraisals: Array<ExpandedBase64>;
    option: number;
    teachers: Array<{
        id: number;
        name: string;
    }>;
    class: {
        appraisal?: ExpandedBase64;
        max?: number;
        avg?: number;
        min?: number;
    };
    _raw: _subject;
    constructor(o: _subject);
    toJSON(): subjectJson;
}
export interface subjectJson {
    id: number;
    code: string;
    name: string;
    weight: number;
    headcount: number;
    rank: number;
    minorSubject: boolean;
    minorSubjectCode?: string;
    group: boolean;
    groupId: number;
    appraisals: expandedBase64Json[];
    option: number;
    teachers: {
        id: number;
        name: string;
    }[];
    class: {
        appraisal?: expandedBase64Json;
        max?: number;
        avg?: number;
        min?: number;
    };
    _raw: _subject;
}
