import { GostBelegpruefungsArt } from '../../../../core/abschluss/gost/GostBelegpruefungsArt';
import { GostBelegpruefung } from '../../../../core/abschluss/gost/GostBelegpruefung';
import { AbiturdatenManager } from '../../../../core/abschluss/gost/AbiturdatenManager';
import { GostKursart } from '../../../../core/types/gost/GostKursart';
import { GostHalbjahr } from '../../../../core/types/gost/GostHalbjahr';
export declare class KurszahlenUndWochenstunden extends GostBelegpruefung {
    private kurszahlen;
    private kurszahlenGrundkurse;
    private kurszahlenLeistungskurse;
    private kurszahlenAnrechenbar;
    private kurszahlenEinfuehrungsphase;
    private kurszahlenQualifikationsphase;
    private blockIAnzahlGrundkurse;
    private anzahlLKFaecher;
    private blockIAnzahlLeistungskurse;
    private blockIAnzahlAnrechenbar;
    private wochenstunden;
    private wochenstundenEinfuehrungsphase;
    private wochenstundenQualifikationsphase;
    /**
     * Erstellt eine neue Belegprüfung für die Kurszahlen.
     *
     * @param manager                 der Daten-Manager für die Abiturdaten
     * @param pruefungs_art           die Art der durchzuführenden Prüfung (z.B. EF.1 oder GESAMT)
     * @param pruefungProjektkurse    das Ergebnis für die Belegprüfung der Projektkurse
     */
    constructor(manager: AbiturdatenManager, pruefungs_art: GostBelegpruefungsArt, pruefungProjektkurse: GostBelegpruefung);
    protected init(): void;
    protected pruefeEF1(): void;
    /**
     * EF1-Prüfung Punkt 21:
     * Prüfe, ob zu wenige Grundkurse (ohne Vertiefungskurse) in der EF belegt wurden,
     * dh. weniger als 10 Kurse
     */
    private pruefeGrundkurseEF1;
    /**
     * EF1-Prüfung Punkt 22:
     * Prüfe, ob die Summe der Kursstunden in der EF.1 größer oder gleich 32 und kleiner oder gleich 36 ist.
     */
    private pruefeWochenstundenEF1;
    protected pruefeGesamt(): void;
    /**
     * Gesamtprüfung Punkt 58:
     * Prüfe, ob zu wenige Grundkurse (ohne Vertiefungskurse) in der EF belegt wurden,
     * dh. weniger als 10 Kurse
     */
    private pruefeGrundkurseEF;
    /**
     * Gesamtprüfung Punkt 59:
     * Prüfe, ob in jedem Halbjahr die Summe der Kursstunden größer oder gleich 32 und kleiner oder gleich 36 ist.
     */
    private pruefeWochenstunden;
    /**
     * Gesamtprüfung Punkt 61:
     * Prüfe, ob in den Halbjahren der Qualifikationsphase mindestens 7 Grundkurse belegt wurden.
     * Dazu zählen auch Zusatzkurse sowie solche Projektkurse, die 2 Halbjahre belegt wurden
     * und zu keiner besonderen Lernleistung zählen.
     */
    private pruefeGrundkurseQ;
    /**
     * Gesamtprüfung Punkt 60 und 75:
     * Wurden in der Qualifikationsphase in jedem Halbjahr zwei LKs belegt in insgesamt genau 2 Fächern.
     */
    private pruefeLeistungskurse;
    /**
     * Gesamtprüfung Punkt 62:
     * Ist die Summe aller belegten Vertiefungskurse in der EF kleiner gleich 4?
     */
    private pruefeVertiefungskurseEF;
    /**
     * Gesamtprüfung Punkt 63:
     * Ist die Summe aller belegten Vertiefungskurse in der Qualifikationsphase kleiner gleich 2?
     */
    private pruefeVertiefungskurseQ;
    /**
     * Gesamtprüfung Punkt 69:
     * Ist die Anzahl anrechenbarer Kurse für Block I des Abiturs (Qualifikationsphase) größer gleich 38?
     */
    private pruefeAnrechenbareKurse;
    /**
     * Gesamtprüfung Punkte 80-82:
     * Prüfe, ob die Summe der durschnittlichen Kursstunden der 3 Jahre größer oder gleich 100 bzw. 102 ist
     * und ob die durchschnittliche Summe der Kurstunden in der Einführungsphase under Qualifikationsphase
     * größer oder gleich 34 ist.
     */
    private pruefeKursstundenSummen;
    /**
     * Gibt die Kurszahlen für das Halbjahr und die Kursart zurück.
     *
     * @param halbjahr   das Halbjahr
     * @param kursart    die Kursart
     *
     * @return die Kurszahlen
     */
    getKurszahlen(halbjahr: GostHalbjahr, kursart: GostKursart): number;
    /**
     * Gibt die Kurszahlen für die Grundkurse für das angegebene Halbjahr zurück.
     *
     * @param halbjahr   das Halbjahr
     *
     * @return die Kurszahlen
     */
    getKurszahlenGrundkurse(halbjahr: GostHalbjahr): number;
    /**
     * Gibt die Kurszahlen für die Leistungskurse für das angegebene Halbjahr zurück.
     *
     * @param halbjahr   das Halbjahr
     *
     * @return die Kurszahlen
     */
    getKurszahlenLeistungskurse(halbjahr: GostHalbjahr): number;
    /**
     * Gibt die Zahl der anrechenbaren Kurse für das angegebene Halbjahr zurück.
     *
     * @param halbjahr   das Halbjahr
     *
     * @return die Kurszahlen
     */
    getKurszahlenAnrechenbar(halbjahr: GostHalbjahr): number;
    /**
     * Gibt die Zahl der Kurse mit der angegebenen Kursart in der Einführungsphase zurück.
     *
     * @param kursart   die Kursart
     *
     * @return die Kurszahlen
     */
    getKurszahlenEinfuehrungsphase(kursart: GostKursart): number;
    /**
     * Gibt die Zahl der Kurse mit der angegebenen Kursart in der Qualifikationsphase zurück.
     *
     * @param kursart   die Kursart
     *
     * @return die Kurszahlen
     */
    getKurszahlenQualifikationsphase(kursart: GostKursart): number;
    /**
     * Gibt die Anzahl der Grundkurse für Block I zurück.
     *
     * @return die Anzahl der Grundkurse
     */
    getBlockIAnzahlGrundkurse(): number;
    /**
     * Gibt die Anzahl der Leistungskurse für Block I zurück.
     *
     * @return die Anzahl der Leistungskurse
     */
    getBlockIAnzahlLeistungskurse(): number;
    /**
     * Gibt die Anzahl der anrechenbaren Kurse für Block I zurück.
     *
     * @return die Anzahl der anrechenbaren Kurse
     */
    getBlockIAnzahlAnrechenbar(): number;
    /**
     * Gibt die Anzahl der Wochenstunden für das angegebene Halbjahr zurück.
     *
     * @param halbjahr  das Halbjahr
     *
     * @return die Anzahl der Wochenstunden
     */
    getWochenstunden(halbjahr: GostHalbjahr): number;
    /**
     * Gibt die Anzahl der Wochenstunden für die Einführungsphase zurück.
     *
     * @return die Anzahl der Wochenstunden
     */
    getWochenstundenEinfuehrungsphase(): number;
    /**
     * Gibt die Anzahl der Wochenstunden für die Qualifikationsphase zurück.
     *
     * @return die Anzahl der Wochenstunden
     */
    getWochenstundenQualifikationsphase(): number;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_KurszahlenUndWochenstunden(obj: unknown): KurszahlenUndWochenstunden;
