import { JavaObject } from '../../java/lang/JavaObject';
import { KursblockungDynKurs } from '../../core/kursblockung/KursblockungDynKurs';
export declare class KursblockungDynStatistik extends JavaObject {
    private matrixFachartPaar;
    private bewertungFachartPaar;
    private bewertungFachartPaarSaveS;
    private bewertungFachartPaarSaveK;
    private bewertungNichtwahlen;
    private bewertungNichtwahlenSaveS;
    private bewertungNichtwahlenSaveK;
    private bewertungKursdifferenzen;
    private bewertungKursdifferenzenSaveS;
    private bewertungKursdifferenzenSaveK;
    private bewertungKursdifferenzenMaxIndex;
    /**
     * Initialisiert alle Attribute mit Dummy-Werten.
     */
    constructor();
    /**
     * Initialisiert alle Attribute mit Dummy-Werten. Setzt alle Werte auf 0 und
     * initialisiert alle Arrays auf Länge 0.
     */
    clear(): void;
    /**
     * Initialisiert dieses Objekt mit den Anfangswerten.
     *
     * @param pMatrixFachartPaar Das 2D-Array beinhaltet pro Fachart-Paar eine
     *                           Bewertung.
     * @param pMaxSchueler       Die maximale Anzahl an Schülern.
     * @param pMaxFacharten      Die maximale Anzahl an Facharten.
     */
    aktionInitialisiere(pMatrixFachartPaar: Array<Array<number>>, pMaxSchueler: number, pMaxFacharten: number): void;
    /**
     * Liefert die aktuelle Fachart-Paar-Bewertung.
     *
     * @return Die aktuelle Fachart-Paar-Bewertung.
     */
    gibBewertungFachartPaar(): number;
    /**
     * Liefert die aktuelle Anzahl an Nichtwahlen. Das ist die Summe aller Kurs, die
     * bei Schülern nicht zugeordnet wurden.
     *
     * @return Die aktuelle Anzahl an Nichtwahlen.
     */
    gibBewertungNichtwahlen(): number;
    /**
     * Liefert die aktuell größte Kursdifferenz (über alle Facharten).
     *
     * @return Die aktuell größte Kursdifferenz (über alle Facharten).
     */
    gibBewertungKursdifferenz(): number;
    /**
     * Informiert die Statistik, dass ein Kurs-Paar hinzuzufügen ist.
     *
     * @param pKurs1 Der 1. Kurs des Kurs-Paares.
     * @param pKurs2 Der 2. Kurs des Kurs-Paares.
     */
    aktionKurspaarInSchieneHinzufuegen(pKurs1: KursblockungDynKurs, pKurs2: KursblockungDynKurs): void;
    /**
     * Informiert die Statistik, dass ein Kurs-Paar zu entfernen ist.
     *
     * @param pKurs1 Der 1. Kurs des Kurs-Paares.
     * @param pKurs2 Der 2. Kurs des Kurs-Paares.
     */
    aktionKurspaarInSchieneEntfernen(pKurs1: KursblockungDynKurs, pKurs2: KursblockungDynKurs): void;
    /**
     * Informiert die Statistik über eine Veränderung der Nichtwahlen.
     *
     * @param pVeraenderung Die Veränderungen der Nichtwahlen (negative Werte sind
     *                      möglich).
     */
    aktionNichtwahlenVeraendern(pVeraenderung: number): void;
    /**
     * Entfernt eine Kursdifferenz {@code pIndex} aus dem Histogramm
     * {@link KursblockungDynStatistik#bewertungKursdifferenzen} aller
     * Kursdifferenzen. Der Index des größten Nicht-Null-Wertes
     * {@link KursblockungDynStatistik#bewertungKursdifferenzenMaxIndex} wird dabei
     * möglicherweise kleiner. <br>
     * {@code Beispiel vorher: 5, 0, 6, 0, 0, 1*, 0, 0, 0}<br>
     * {@code Beispiel danach: 5, 0, 6*, 0, 0, 0, 0, 0, 0}<br>
     *
     * @param pIndex Die Kursdifferenz von der es eine weniger geben soll.
     */
    aktionKursdifferenzEntfernen(pIndex: number): void;
    /**
     * Fügt eine Kursdifferenz {@code pIndex} dem Histogramm
     * {@link KursblockungDynStatistik#bewertungKursdifferenzen} aller
     * Kursdifferenzen hinzu. Der Index des größten Nicht-Null-Wertes
     * {@link KursblockungDynStatistik#bewertungKursdifferenzenMaxIndex} wird dabei
     * möglicherweise größer. <br>
     * {@code Beispiel vorher: 5, 0, 6*, 0, 0, 0, 0, 0, 0}<br>
     * {@code Beispiel danach: 5, 0, 6, 0, 0, 1*, 0, 0, 0}<br>
     *
     * @param pIndex Die Kursdifferenz von der es eine weniger geben soll.
     */
    aktionKursdifferenzHinzufuegen(pIndex: number): void;
    /**
     * Ausgabe von Debug-Informationen. Nur für Testzwecke.
     */
    debug(): void;
    /**
     * Speichert die aktuellen Werte (im Zustand S). Die Methoden
     * {@link KursblockungDynStatistik#gibBewertung_NW_KD_JetztS} und
     * {@link KursblockungDynStatistik#gibBewertungFachartPaarSchlechter} bedienen
     * sich dann der ehemaligen Werte um festzustellen, ob es eine Verschlechterung
     * gab.
     *
     */
    aktionBewertungSpeichernS(): void;
    /**
     * Speichert die aktuellen Werte (im Zustand K). Die Methoden
     * {@link KursblockungDynStatistik#gibBewertung_NW_KD_JetztK()} und
     * {@link KursblockungDynStatistik#gibBewertungFachartPaarSchlechter} bedienen
     * sich dann der ehemaligen Werte um festzustellen, ob es eine Verschlechterung
     * gab.
     *
     */
    aktionBewertungSpeichernK(): void;
    /**
     * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
     * Kursdiffenzen) des Zustandes S sich verschlechtert (-1), sich verbessert (+1)
     * hat oder gleichgeblieben (0) ist.
     *
     * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
     *         Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich
     *         verbessert (+1) hat oder gleichgeblieben (0) ist.
     */
    gibBewertung_NW_KD_JetztS(): number;
    /**
     * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
     * Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich verbessert (+1)
     * hat oder gleichgeblieben (0) ist.
     *
     * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
     *         Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich
     *         verbessert (+1) hat oder gleichgeblieben (0) ist.
     */
    gibBewertung_NW_KD_JetztK(): number;
    /**
     * Liefert den Wert {@code true}, falls die Bewertung (bewertungFachartPaar) des
     * Zustandes S sich verschlechtert hat.
     *
     * @return {@code true}, falls die Bewertung (bewertungFachartPaar) des
     *         Zustandes S sich verschlechtert hat.
     */
    gibBewertungFachartPaarSchlechter(): boolean;
    /**
     * Liefert den Wert {@code true}, falls die Bewertung (bewertungFachartPaar) des
     * Zustandes K sich verschlechtert hat.
     *
     * @return {@code true}, falls die Bewertung (bewertungFachartPaar) des
     *         Zustandes K sich verschlechtert hat.
     */
    gibBewertungFachartPaarSchlechterK(): boolean;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynStatistik(obj: unknown): KursblockungDynStatistik;
