import { JavaObject } from '../../java/lang/JavaObject';
import { KursblockungDynStatistik } from '../../core/kursblockung/KursblockungDynStatistik';
import { KursblockungDynKurs } from '../../core/kursblockung/KursblockungDynKurs';
export declare class KursblockungDynFachart extends JavaObject {
    private readonly nr;
    private readonly representation;
    private kursArr;
    private schuelerMax;
    private kurseMax;
    private schuelerAnzNow;
    private readonly statistik;
    /**
     * @param pNr             Eine laufende Nummer (ID) für alle Facharten.
     * @param pRepresentation Eine String-Darstellung der Fachart, z.B. 'D;LK'.
     * @param pStatistik      Dem Statistik-Objekt wird eine Veränderung der
     *                        Kursdifferenz mitgeteilt.
     */
    constructor(pNr: number, pRepresentation: String, pStatistik: KursblockungDynStatistik);
    /**
     * Durch das Überschreiben dieser Methode, liefert dieses Objekt eine
     * automatische String-Darstellung, beispielsweise 'D;LK'.
     */
    toString(): String;
    /**
     * Liefert die Nummer dieser Fachart.
     *
     * @return Die Nummer dieser Fachart.
     */
    gibNr(): number;
    /**
     * Liefert die maximale Anzahl ({@link #schuelerMax}) an SuS, die dieser Fachart
     * zugeordnet sein können. Das ist die Anzahl der Fachwahlen.
     *
     * @return Die Anzahl der SuS, die diese Fachart gewählt haben.
     */
    gibSchuelerMax(): number;
    /**
     * Liefert die aktuelle Anzahl ({@link #schuelerAnzNow}) an SuS, die dieser
     * Fachart zugeordnet sind.
     *
     * @return Die Anzahl der SuS, die diese Fachart aktuell zugeordnet sind.
     */
    gibSchuelerZordnungen(): number;
    /**
     * Liefert die Anzahl der Kurse die dieser Fachart zugeordnet sind.
     *
     * @return Die Anzahl der Kurse die dieser Fachart zugeordnet sind.
     */
    gibKurseMax(): number;
    /**
     * Liefert die aktuell größte Kursdifferenz.
     *
     * @return Die aktuell größte Kursdifferenz.
     */
    gibKursdifferenz(): number;
    /**
     * Liefert das Array aller Kurse dieser Fachart.
     *
     * @return Das Array aller Kurse dieser Fachart.
     */
    gibKurse(): Array<KursblockungDynKurs>;
    /**
     * Ordnet alle Kurse der Fachart zu. Die Kurse haben noch keine SuS und sind
     * somit automatisch sortiert.
     *
     * @param pKursArr Alle Kurse der Fachart.
     */
    aktionSetKurse(pKursArr: Array<KursblockungDynKurs>): void;
    /**
     * Erhöht die Anzahl ({@link #schuelerMax}) an SuS, die diese Fachart gewählt
     * haben um 1.
     */
    aktionMaxSchuelerErhoehen(): void;
    /**
     * Erhöht die Anzahl ({@link #kurseMax}) an Kursen, die zu dieser Fachart
     * gehören.
     */
    aktionMaxKurseErhoehen(): void;
    /**
     * Muss aufgerufen werden, bevor die Schüleranzahl eines Kurses verändert wird.
     */
    aktionKursdifferenzEntfernen(): void;
    /**
     * Muss aufgerufen werden, nachdem die Schüleranzahl eines Kurses verändert
     * wird.
     */
    aktionKursdifferenzHinzufuegen(): void;
    /**
     * Erhöht die Anzahl ({@link #schuelerAnzNow}) an Schülern, die dieser Fachart
     * momentan zugeordnet sind um 1. Die Aufru
     */
    aktionSchuelerWurdeHinzugefuegt(): void;
    /**
     * Verringert die Anzahl ({@link #schuelerAnzNow}) an SuS, die dieser Fachart
     * momentan zugeordnet sind um 1.
     */
    aktionSchuelerWurdeEntfernt(): void;
    /**
     * Debug Ausgabe. Nur für Testzwecke.
     */
    debug(): void;
    /**
     * Liefert TRUE, falls mindestens ein Kurs dieser Fachart ein Multikur ist.
     *
     * @return TRUE, falls mindestens ein Kurs dieser Fachart ein Multikur ist.
     */
    gibHatMultikurs(): boolean;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynFachart(obj: unknown): KursblockungDynFachart;
