import { JavaObject } from '../../java/lang/JavaObject';
import { KursblockungInput } from '../../core/data/kursblockung/KursblockungInput';
export declare class KursblockungStatic extends JavaObject {
    constructor();
    /**
     * Erzeugt ein Array der Größe {@code n}, füllt es mit den Zahlen
     * {@code 0 bis n-1} und permutiert das Array dann zufällig.
     *
     * @param n Die Größe des Arrays.
     * @return Eine Array-Referenz.
     */
    static gibPermutation(n: number): Array<number>;
    /**
     * Permutiert das Array {@code perm} zufällig.
     *
     * @param perm Das zu permutierende Array.
     */
    static aktionPermutiere(perm: Array<number>): void;
    /**
     * Erweitert die Eingabedaten {@link KursblockungInput} um eine Regel, welche
     * bestimmte Schienen für bestimmte Kursarten sperrt.
     *
     * @param pInput   Das Eingabeojekt, welchem eine neue Regel hinzugefügt wird.
     * @param pKursart Eine String-Darstellung der Kursart.
     * @param pVon     Sperrung aller Schienen von (inklusive, 0-indiziert).
     * @param pBis     Sperrung aller Schienen bis (inklusive, 0-indiziert).
     */
    static aktionSperreSchieneFuerKursart(pInput: KursblockungInput, pKursart: String, pVon: number, pBis: number): void;
    /**
     * Erweitert die Eingabedaten {@link KursblockungInput} um Regeln, die bestimmte
     * Kurse in einer Schiene fixieren, andere Kurse die Schiene verbieten.
     *
     * @param pInput     Das Eingabeojekt, welchem eine neue Regel hinzugefügt wird.
     * @param pKursnamen Die zu fixierenden Kursnamen
     * @param pSchiene   Die Schiene in der die Kurse (und nur diese) liegen sollen.
     */
    static aktionFixiereKurseInSchieneSonstNichts(pInput: KursblockungInput, pKursnamen: Array<String>, pSchiene: number): void;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungStatic(obj: unknown): KursblockungStatic;
