import { JavaObject } from '../../java/lang/JavaObject';
import { KursblockungDynDaten } from '../../core/kursblockung/KursblockungDynDaten';
import { Logger } from '../../logger/Logger';
export declare abstract class KursblockungAlgorithmusS extends JavaObject {
    protected readonly logger: Logger;
    protected readonly dynDaten: KursblockungDynDaten;
    /**
     * Der Konstruktor stellt einen Logger und die bei der Blockung benötigten
     * dynamischen Daten den Unterklassen zur Verfügung.
     *
     * @param logger   Logger für Benutzerhinweise, Warnungen und Fehler.
     * @param dynDaten Die aktuellen Blockunsdaten.
     */
    constructor(logger: Logger, dynDaten: KursblockungDynDaten);
    /**
     * Eine Unterklasse, die diese Methode implementiert, berechnet eine Verteilung
     * der SuS auf die Kurse.
     *
     * @param pMaxTimeMillis Die maximale Berechnungszeit in Millisekunden.
     */
    abstract berechne(pMaxTimeMillis: number): void;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusS(obj: unknown): KursblockungAlgorithmusS;
