import { JavaObject } from '../../../java/lang/JavaObject';
import { Schulform } from '../../../core/types/statkue/Schulform';
import { Schulgliederung } from '../../../core/types/statkue/Schulgliederung';
import { List } from '../../../java/util/List';
export declare class ZulaessigeKursart extends JavaObject {
    /** the name of the enumeration value */
    private readonly __name;
    /** the ordinal value for the enumeration value */
    private readonly __ordinal;
    /** an array containing all values of this enumeration */
    private static readonly all_values_by_ordinal;
    /** an array containing all values of this enumeration indexed by their name*/
    private static readonly all_values_by_name;
    static readonly AB3: ZulaessigeKursart;
    static readonly AB4: ZulaessigeKursart;
    static readonly AG: ZulaessigeKursart;
    static readonly AGGT: ZulaessigeKursart;
    static readonly AGKWB: ZulaessigeKursart;
    static readonly AGK: ZulaessigeKursart;
    static readonly AST: ZulaessigeKursart;
    static readonly BSP: ZulaessigeKursart;
    static readonly BUS: ZulaessigeKursart;
    static readonly E: ZulaessigeKursart;
    static readonly E_H: ZulaessigeKursart;
    static readonly EBA: ZulaessigeKursart;
    static readonly EF2: ZulaessigeKursart;
    static readonly EFSP: ZulaessigeKursart;
    static readonly EGS1: ZulaessigeKursart;
    static readonly EGSN: ZulaessigeKursart;
    static readonly EV: ZulaessigeKursart;
    static readonly EWBF: ZulaessigeKursart;
    static readonly EWF: ZulaessigeKursart;
    static readonly EWFA: ZulaessigeKursart;
    static readonly F3: ZulaessigeKursart;
    static readonly FAG: ZulaessigeKursart;
    static readonly FFU: ZulaessigeKursart;
    static readonly FOGT: ZulaessigeKursart;
    static readonly DFUT: ZulaessigeKursart;
    static readonly FS3: ZulaessigeKursart;
    static readonly DFUK: ZulaessigeKursart;
    static readonly FU: ZulaessigeKursart;
    static readonly FUAUS: ZulaessigeKursart;
    static readonly FUF: ZulaessigeKursart;
    static readonly FUK: ZulaessigeKursart;
    static readonly FUT: ZulaessigeKursart;
    static readonly FUEK: ZulaessigeKursart;
    static readonly G: ZulaessigeKursart;
    static readonly G_H: ZulaessigeKursart;
    static readonly GKM: ZulaessigeKursart;
    static readonly GKS: ZulaessigeKursart;
    static readonly HU: ZulaessigeKursart;
    static readonly KMFOE: ZulaessigeKursart;
    static readonly LK1: ZulaessigeKursart;
    static readonly LK2: ZulaessigeKursart;
    static readonly LRS: ZulaessigeKursart;
    static readonly MEU: ZulaessigeKursart;
    static readonly DFUX: ZulaessigeKursart;
    static readonly NPG: ZulaessigeKursart;
    static readonly PJK: ZulaessigeKursart;
    static readonly PROJ: ZulaessigeKursart;
    static readonly PUK: ZulaessigeKursart;
    static readonly PUT: ZulaessigeKursart;
    static readonly SF: ZulaessigeKursart;
    static readonly SLP: ZulaessigeKursart;
    static readonly SPA: ZulaessigeKursart;
    static readonly SPFU: ZulaessigeKursart;
    static readonly SPFOE: ZulaessigeKursart;
    static readonly SWFB: ZulaessigeKursart;
    static readonly SWFW: ZulaessigeKursart;
    static readonly TAL: ZulaessigeKursart;
    static readonly UMPF: ZulaessigeKursart;
    static readonly VSU: ZulaessigeKursart;
    static readonly VTF: ZulaessigeKursart;
    static readonly VUW: ZulaessigeKursart;
    static readonly WP: ZulaessigeKursart;
    static readonly WP1FS: ZulaessigeKursart;
    static readonly WP1MU: ZulaessigeKursart;
    static readonly WP1NT: ZulaessigeKursart;
    static readonly WP1SW: ZulaessigeKursart;
    static readonly WP1WW: ZulaessigeKursart;
    static readonly WPF: ZulaessigeKursart;
    static readonly WPI: ZulaessigeKursart;
    static readonly WPI_GY: ZulaessigeKursart;
    static readonly WPII: ZulaessigeKursart;
    static readonly WPU: ZulaessigeKursart;
    static readonly ZK: ZulaessigeKursart;
    static readonly ZUV: ZulaessigeKursart;
    private static readonly _kursarten;
    private static readonly _kursartenASD;
    readonly ID: String;
    readonly kuerzel: String;
    readonly nummer: String;
    readonly bezeichnung: String;
    readonly bemerkungen: String | null;
    readonly kuerzelAllg: String | null;
    readonly bezeichnungAllg: String | null;
    readonly erlaubtGOSt: boolean;
    readonly schulformenKuerzel: List<String> | null;
    private schulformen;
    readonly gliederungenKuerzel: List<String> | null;
    private gliederungen;
    readonly gueltigVon: Number | null;
    readonly gueltigBis: Number | null;
    /**
     * Erzeugt eine zulässige Kursart in der Aufzählung.
     *
     * @param ID                    die eindeutige ID der Kursart - orientiert sich an der Bezeichnung der in
     *                              dem amtlichen Schulstatistik verwendeten Kursart, ist aber eindeutig
     * @param kuerzel               das Kürzel der Kursart entsprechend der Vorgaben der amtlichen Schulstatistik
     * @param nummer                die Nummer der Kursart entsprechend der Vorgaben der amtlichen Schulstatistik
     * @param bezeichnung           die Bezeichnung der Kursart
     * @param bemerkungen           ergänzende Bemerkungen zu der Kursart
     * @param kuerzelAllg           das Kürzel einer verallgemeinerten Kursart, sofern diese angegeben ist
     * @param bezeichnungAllg       die Bezeichnung der verallgemeinerter Kursart, sofern diese angegeben ist
     * @param schulformenKuerzel    die Schulformen, für welche die Kursart gültig ist, sofern es für die Schulform nicht
     *                              auf einzelne Gliederungen eingeschränkt ist
     * @param gliederungenKuerzel   die Schulgliederungen, bei den Schulformen, wo die Kursart nur bei einzelnen
     *                              Schulgliederungen zulässig ist.
     */
    private constructor();
    /**
     * Gibt eine Map von den IDs der Kursarten auf die zugehörigen Kursarten
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den IDs der Kursarten auf die zugehörigen Kursarten
     */
    private static getMapKursartenByID;
    /**
     * Gibt eine Map von den Kürzeln der Kursarten auf die zugehörigen Kursarten
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den Kürzeln der Kursarten auf die zugehörigen Kursarten
     */
    private static getMapKursartenByKuerzel;
    /**
     * Prüft, ob die Schulform bei dieser Kursart in irgendeiner Gliederung der
     * angegebenen Schulform zulässig ist.
     *
     * @param schulform    die Schulform
     *
     * @return true, falls die Kursart in der Schulform zulässig ist, ansonsten false.
     */
    private hasSchulform;
    /**
     * Bestimmt alle Kursarten, die in irgendeiner Gliederung der angegebenen Schulform
     * zulässig sind.
     *
     * @param schulform    die Schulform
     *
     * @return die zulässigen Kursarten in der angegebenen Schulform
     */
    static get(schulform: Schulform | null): List<ZulaessigeKursart>;
    /**
     * Liefert alle Schulformen zurück, für welche die Kursart gültig ist, sofern sie für
     * die Schulform nicht auf einzelne Gliederungen eingeschränkt ist.
     *
     * @return eine Liste der Schulformen
     */
    getSchulformen(): List<Schulform>;
    /**
     * Liefert die Schulgliederungen, bei den Schulformen, wo die Kursart nur bei
     * einzelnen Schulgliederungen zulässig ist, zurück.
     *
     * @return eine Liste der Schulgliederungen
     */
    getGliederungen(): List<Schulgliederung>;
    /**
     * Bestimmt anhand des nicht unbedingt eindeutigen (!) Statistik-Kürzels, die
     * zuläsige Kursart.
     *
     * @param kursart   das nicht unbedingt eindeutige Statistik-Kürzel
     *
     * @return die Kursart oder null, wenn keine Zuordnung für das übergebene Kürzel vorhanden ist
     */
    static getByASDKursart(kursart: String | null): ZulaessigeKursart | null;
    /**
     * Returns the name of this enumeration value.
     *
     * @returns the name
     */
    private name;
    /**
     * Returns the ordinal value of this enumeration value.
     *
     * @returns the ordinal value
     */
    private ordinal;
    /**
     * Returns the name of this enumeration value.
     *
     * @returns the name
     */
    toString(): String;
    /**
     * Returns true if this and the other enumeration values are equal.
     *
     * @param other   the other enumeration value
     *
     * @returns true if they are equal and false otherwise
     */
    equals(other: JavaObject): boolean;
    /**
     * Returns the ordinal value as hashcode, since the ordinal value is unique.
     *
     * @returns the ordinal value as hashcode
     */
    hashCode(): number;
    /**
     * Compares this enumeration value with the other enumeration value by their ordinal value.
     *
     * @param other   the other enumeration value
     *
     * @returns a negative, zero or postive value as this enumeration value is less than, equal to
     *          or greater than the other enumeration value
     */
    compareTo(other: ZulaessigeKursart): number;
    /**
     * Returns an array with enumeration values.
     *
     * @returns the array with enumeration values
     */
    static values(): Array<ZulaessigeKursart>;
    /**
     * Returns the enumeration value with the specified name.
     *
     * @param name   the name of the enumeration value
     *
     * @returns the enumeration values or null
     */
    static valueOf(name: String): ZulaessigeKursart | null;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_types_statkue_ZulaessigeKursart(obj: unknown): ZulaessigeKursart;
