import { KursblockungDynDaten } from '../../core/kursblockung/KursblockungDynDaten';
import { KursblockungAlgorithmusK } from '../../core/kursblockung/KursblockungAlgorithmusK';
import { Logger } from '../../logger/Logger';
export declare class KursblockungAlgorithmusKFachwahlmatrix extends KursblockungAlgorithmusK {
    /**
     * Im Konstruktor kann die Klasse die jeweiligen Datenstrukturen aufbauen. Kurse
     * dürfen in diese Methode noch nicht auf Schienen verteilt werden.
     *
     * @param logger Logger für Benutzerhinweise, Warnungen und Fehler.
     * @param dynDat Die dynamischen Blockungsdaten.
     */
    constructor(logger: Logger, dynDat: KursblockungDynDaten);
    /**
     * Der Algorithmus entfernt zunächst alle SuS aus ihren Kursen. Anschließend
     * werden die Kurse zufällig verteilt.
     */
    berechne(pMaxTimeMillis: number): void;
    /**
     * Die Lage einiger Kurse wird verändert. Falls sich die Bewertung
     * verschlechter, wird die Veränderung rückgängig gemacht.
     *
     * @return TRUE, falls sich die Bewertung verbessert hat.
     */
    private berechneSchritt;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusKFachwahlmatrix(obj: unknown): KursblockungAlgorithmusKFachwahlmatrix;
