import { JavaObject } from '../../../java/lang/JavaObject';
import { Fachgruppe } from '../../../core/types/statkue/Fachgruppe';
import { Schulform } from '../../../core/types/statkue/Schulform';
import { Schulgliederung } from '../../../core/types/statkue/Schulgliederung';
import { List } from '../../../java/util/List';
export declare class ZulaessigesFach 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 A: ZulaessigesFach;
    static readonly AB: ZulaessigesFach;
    static readonly AG: ZulaessigesFach;
    static readonly AH: ZulaessigesFach;
    static readonly AL: ZulaessigesFach;
    static readonly AM: ZulaessigesFach;
    static readonly AR: ZulaessigesFach;
    static readonly AT: ZulaessigesFach;
    static readonly AV: ZulaessigesFach;
    static readonly AW: ZulaessigesFach;
    static readonly AX: ZulaessigesFach;
    static readonly AY: ZulaessigesFach;
    static readonly BA: ZulaessigesFach;
    static readonly BF: ZulaessigesFach;
    static readonly BG: ZulaessigesFach;
    static readonly BH: ZulaessigesFach;
    static readonly BI: ZulaessigesFach;
    static readonly BK: ZulaessigesFach;
    static readonly BM: ZulaessigesFach;
    static readonly BN: ZulaessigesFach;
    static readonly BP: ZulaessigesFach;
    static readonly BR: ZulaessigesFach;
    static readonly BS: ZulaessigesFach;
    static readonly BV: ZulaessigesFach;
    static readonly BW: ZulaessigesFach;
    static readonly BY: ZulaessigesFach;
    static readonly C: ZulaessigesFach;
    static readonly C0: ZulaessigesFach;
    static readonly C1: ZulaessigesFach;
    static readonly C5: ZulaessigesFach;
    static readonly C6: ZulaessigesFach;
    static readonly C7: ZulaessigesFach;
    static readonly C8: ZulaessigesFach;
    static readonly C9: ZulaessigesFach;
    static readonly CH: ZulaessigesFach;
    static readonly CM: ZulaessigesFach;
    static readonly CQ: ZulaessigesFach;
    static readonly D: ZulaessigesFach;
    static readonly DB: ZulaessigesFach;
    static readonly DH: ZulaessigesFach;
    static readonly DM: ZulaessigesFach;
    static readonly DS: ZulaessigesFach;
    static readonly DV: ZulaessigesFach;
    static readonly E: ZulaessigesFach;
    static readonly EB: ZulaessigesFach;
    static readonly EH: ZulaessigesFach;
    static readonly EK: ZulaessigesFach;
    static readonly EL: ZulaessigesFach;
    static readonly EM: ZulaessigesFach;
    static readonly EN: ZulaessigesFach;
    static readonly ER: ZulaessigesFach;
    static readonly F: ZulaessigesFach;
    static readonly F0: ZulaessigesFach;
    static readonly F1: ZulaessigesFach;
    static readonly F5: ZulaessigesFach;
    static readonly F6: ZulaessigesFach;
    static readonly F7: ZulaessigesFach;
    static readonly F8: ZulaessigesFach;
    static readonly F9: ZulaessigesFach;
    static readonly FB: ZulaessigesFach;
    static readonly FK: ZulaessigesFach;
    static readonly FP: ZulaessigesFach;
    static readonly FQ: ZulaessigesFach;
    static readonly FU: ZulaessigesFach;
    static readonly G: ZulaessigesFach;
    static readonly G0: ZulaessigesFach;
    static readonly G1: ZulaessigesFach;
    static readonly G5: ZulaessigesFach;
    static readonly G6: ZulaessigesFach;
    static readonly G7: ZulaessigesFach;
    static readonly G8: ZulaessigesFach;
    static readonly G9: ZulaessigesFach;
    static readonly GA: ZulaessigesFach;
    static readonly GB: ZulaessigesFach;
    static readonly GE: ZulaessigesFach;
    static readonly GH: ZulaessigesFach;
    static readonly GL: ZulaessigesFach;
    static readonly GM: ZulaessigesFach;
    static readonly GO: ZulaessigesFach;
    static readonly GP: ZulaessigesFach;
    static readonly GQ: ZulaessigesFach;
    static readonly GS: ZulaessigesFach;
    static readonly GU: ZulaessigesFach;
    static readonly GW: ZulaessigesFach;
    static readonly H: ZulaessigesFach;
    static readonly H0: ZulaessigesFach;
    static readonly H1: ZulaessigesFach;
    static readonly H5: ZulaessigesFach;
    static readonly H6: ZulaessigesFach;
    static readonly H7: ZulaessigesFach;
    static readonly H8: ZulaessigesFach;
    static readonly H9: ZulaessigesFach;
    static readonly HH: ZulaessigesFach;
    static readonly HQ: ZulaessigesFach;
    static readonly HR: ZulaessigesFach;
    static readonly HU: ZulaessigesFach;
    static readonly HW: ZulaessigesFach;
    static readonly HY: ZulaessigesFach;
    static readonly I: ZulaessigesFach;
    static readonly I0: ZulaessigesFach;
    static readonly I1: ZulaessigesFach;
    static readonly I5: ZulaessigesFach;
    static readonly I6: ZulaessigesFach;
    static readonly I7: ZulaessigesFach;
    static readonly I8: ZulaessigesFach;
    static readonly I9: ZulaessigesFach;
    static readonly IE: ZulaessigesFach;
    static readonly IF: ZulaessigesFach;
    static readonly IH: ZulaessigesFach;
    static readonly IK: ZulaessigesFach;
    static readonly IL: ZulaessigesFach;
    static readonly IM: ZulaessigesFach;
    static readonly IN: ZulaessigesFach;
    static readonly IQ: ZulaessigesFach;
    static readonly JH: ZulaessigesFach;
    static readonly K: ZulaessigesFach;
    static readonly K0: ZulaessigesFach;
    static readonly K1: ZulaessigesFach;
    static readonly K5: ZulaessigesFach;
    static readonly K6: ZulaessigesFach;
    static readonly K7: ZulaessigesFach;
    static readonly K8: ZulaessigesFach;
    static readonly K9: ZulaessigesFach;
    static readonly KN: ZulaessigesFach;
    static readonly KO: ZulaessigesFach;
    static readonly KQ: ZulaessigesFach;
    static readonly KR: ZulaessigesFach;
    static readonly KS: ZulaessigesFach;
    static readonly KU: ZulaessigesFach;
    static readonly L: ZulaessigesFach;
    static readonly L0: ZulaessigesFach;
    static readonly L1: ZulaessigesFach;
    static readonly L5: ZulaessigesFach;
    static readonly L6: ZulaessigesFach;
    static readonly L7: ZulaessigesFach;
    static readonly L8: ZulaessigesFach;
    static readonly L9: ZulaessigesFach;
    static readonly LH: ZulaessigesFach;
    static readonly LI: ZulaessigesFach;
    static readonly LM: ZulaessigesFach;
    static readonly LQ: ZulaessigesFach;
    static readonly M: ZulaessigesFach;
    static readonly MB: ZulaessigesFach;
    static readonly MD: ZulaessigesFach;
    static readonly ME: ZulaessigesFach;
    static readonly MH: ZulaessigesFach;
    static readonly MM: ZulaessigesFach;
    static readonly MP: ZulaessigesFach;
    static readonly MU: ZulaessigesFach;
    static readonly MW: ZulaessigesFach;
    static readonly MX: ZulaessigesFach;
    static readonly MY: ZulaessigesFach;
    static readonly N: ZulaessigesFach;
    static readonly N0: ZulaessigesFach;
    static readonly N1: ZulaessigesFach;
    static readonly N5: ZulaessigesFach;
    static readonly N6: ZulaessigesFach;
    static readonly N7: ZulaessigesFach;
    static readonly N8: ZulaessigesFach;
    static readonly N9: ZulaessigesFach;
    static readonly NH: ZulaessigesFach;
    static readonly NM: ZulaessigesFach;
    static readonly NQ: ZulaessigesFach;
    static readonly NW: ZulaessigesFach;
    static readonly O: ZulaessigesFach;
    static readonly O0: ZulaessigesFach;
    static readonly O1: ZulaessigesFach;
    static readonly O5: ZulaessigesFach;
    static readonly O6: ZulaessigesFach;
    static readonly O7: ZulaessigesFach;
    static readonly O8: ZulaessigesFach;
    static readonly O9: ZulaessigesFach;
    static readonly OH: ZulaessigesFach;
    static readonly OL: ZulaessigesFach;
    static readonly OM: ZulaessigesFach;
    static readonly OQ: ZulaessigesFach;
    static readonly OR: ZulaessigesFach;
    static readonly PA: ZulaessigesFach;
    static readonly PH: ZulaessigesFach;
    static readonly PK: ZulaessigesFach;
    static readonly PL: ZulaessigesFach;
    static readonly PM: ZulaessigesFach;
    static readonly PP: ZulaessigesFach;
    static readonly PS: ZulaessigesFach;
    static readonly PU: ZulaessigesFach;
    static readonly PW: ZulaessigesFach;
    static readonly PX: ZulaessigesFach;
    static readonly POE: ZulaessigesFach;
    static readonly QH: ZulaessigesFach;
    static readonly QM: ZulaessigesFach;
    static readonly R: ZulaessigesFach;
    static readonly R0: ZulaessigesFach;
    static readonly R1: ZulaessigesFach;
    static readonly R5: ZulaessigesFach;
    static readonly R6: ZulaessigesFach;
    static readonly R7: ZulaessigesFach;
    static readonly R8: ZulaessigesFach;
    static readonly R9: ZulaessigesFach;
    static readonly RE: ZulaessigesFach;
    static readonly RH: ZulaessigesFach;
    static readonly RK: ZulaessigesFach;
    static readonly RM: ZulaessigesFach;
    static readonly RQ: ZulaessigesFach;
    static readonly RW: ZulaessigesFach;
    static readonly S: ZulaessigesFach;
    static readonly S0: ZulaessigesFach;
    static readonly S1: ZulaessigesFach;
    static readonly S3: ZulaessigesFach;
    static readonly S4: ZulaessigesFach;
    static readonly S5: ZulaessigesFach;
    static readonly S6: ZulaessigesFach;
    static readonly S7: ZulaessigesFach;
    static readonly S8: ZulaessigesFach;
    static readonly S9: ZulaessigesFach;
    static readonly SE: ZulaessigesFach;
    static readonly SG: ZulaessigesFach;
    static readonly SH: ZulaessigesFach;
    static readonly SI: ZulaessigesFach;
    static readonly SL: ZulaessigesFach;
    static readonly SM: ZulaessigesFach;
    static readonly SP: ZulaessigesFach;
    static readonly SQ: ZulaessigesFach;
    static readonly SR: ZulaessigesFach;
    static readonly SU: ZulaessigesFach;
    static readonly SW: ZulaessigesFach;
    static readonly SZ: ZulaessigesFach;
    static readonly T: ZulaessigesFach;
    static readonly T0: ZulaessigesFach;
    static readonly T1: ZulaessigesFach;
    static readonly T5: ZulaessigesFach;
    static readonly T6: ZulaessigesFach;
    static readonly T7: ZulaessigesFach;
    static readonly T8: ZulaessigesFach;
    static readonly T9: ZulaessigesFach;
    static readonly TC: ZulaessigesFach;
    static readonly TG: ZulaessigesFach;
    static readonly TH: ZulaessigesFach;
    static readonly TI: ZulaessigesFach;
    static readonly TM: ZulaessigesFach;
    static readonly TQ: ZulaessigesFach;
    static readonly TV: ZulaessigesFach;
    static readonly TX: ZulaessigesFach;
    static readonly TZ: ZulaessigesFach;
    static readonly UH: ZulaessigesFach;
    static readonly UM: ZulaessigesFach;
    static readonly UU: ZulaessigesFach;
    static readonly UW: ZulaessigesFach;
    static readonly VE: ZulaessigesFach;
    static readonly VF: ZulaessigesFach;
    static readonly VH: ZulaessigesFach;
    static readonly VK: ZulaessigesFach;
    static readonly VM: ZulaessigesFach;
    static readonly VO: ZulaessigesFach;
    static readonly VP: ZulaessigesFach;
    static readonly VT: ZulaessigesFach;
    static readonly VW: ZulaessigesFach;
    static readonly VX: ZulaessigesFach;
    static readonly W: ZulaessigesFach;
    static readonly WG: ZulaessigesFach;
    static readonly WI: ZulaessigesFach;
    static readonly WP: ZulaessigesFach;
    static readonly WW: ZulaessigesFach;
    static readonly XH: ZulaessigesFach;
    static readonly XM: ZulaessigesFach;
    static readonly XX: ZulaessigesFach;
    static readonly YH: ZulaessigesFach;
    static readonly YM: ZulaessigesFach;
    static readonly YR: ZulaessigesFach;
    static readonly Z: ZulaessigesFach;
    static readonly Z0: ZulaessigesFach;
    static readonly Z1: ZulaessigesFach;
    static readonly Z5: ZulaessigesFach;
    static readonly Z6: ZulaessigesFach;
    static readonly Z7: ZulaessigesFach;
    static readonly Z8: ZulaessigesFach;
    static readonly Z9: ZulaessigesFach;
    static readonly ZF: ZulaessigesFach;
    static readonly ZH: ZulaessigesFach;
    static readonly ZM: ZulaessigesFach;
    static readonly ZQ: ZulaessigesFach;
    static readonly ZW: ZulaessigesFach;
    private static readonly _faecher;
    static readonly DEFAULT: ZulaessigesFach;
    readonly kuerzelASD: String;
    readonly bezeichnung: String;
    readonly kuerzel: String;
    readonly aufgabenfeld: Number | null;
    readonly fachgruppeID: Number | null;
    readonly abJahrgang: String | null;
    readonly istFremdsprache: boolean;
    readonly istHKFS: boolean;
    readonly istAusRegUFach: boolean;
    readonly istErsatzPflichtFS: boolean;
    readonly istKonfKoop: boolean;
    readonly nurSII: boolean;
    readonly exportASD: boolean;
    readonly schulformenKuerzel: List<String> | null;
    private schulformen;
    readonly gliederungenKuerzel: List<String> | null;
    private gliederungen;
    readonly gueltigVon: Number | null;
    readonly gueltigBis: Number | null;
    /**
     * Erzeugt ein zulässiges Fach in der Aufzählung.
     *
     * @param kuerzelASD           das eindeutige Kürzel des Faches, welches im Rahmen der amtlichen Schulstatistik
     *                             verwendet wird
     * @param bezeichnung          die texttuelle Beschreibung des Faches
     * @param schulformenKuerzel   die Kürzel der Schulformen, für welche das Fach gültig ist, sofern es für die Schulform nicht
     *                             auf einzelne Gliederungen eingeschränkt ist
     * @param gliederungenKuerzel  die Kürzel Schulgliederungen, bei den Schulformen, wo das Fach nur bei einzelnen
     *                             Schulgliederungen zulässig ist.
     * @param kuerzel              das atomare Kürzel des Faches (z.B. bei Fremdsprachen - für das Sprachenkürzel)
     *                             - Teil des Kürzels für die amtliche Schulstatistik
     * @param aufgabenfeld         das Aufgabenfeld, welchem das Fach ggf. zugeordnet ist (1, 2 oder 3)
     * @param fachgruppeID         die ID der zugeordneten Fachgruppe
     * @param abJahrgang           der ASD-Jahrgang, ab dem das Fach zulässig ist (z.B. bei Fremdsprachen)
     *                             - Teil des Kürzels für die amtliche Schulstatistik
     * @param istFremdsprache      gibt an, ob es sich um eine Fremdsprache handelt
     * @param istHKFS              gibt an, ob es sich um ein Fach der Herkuntftsprache handelt (Unterrichts in der
     *                             Herkunftssprache oder Herkunftssprache anstelle einer Pflichtfremdsprache)
     * @param istAusRegUFach       gibt an, ob das Fach außerhalb des regulären Fachunterichts unterrichtet wird
     * @param istErsatzPflichtFS   gibt an, ob es sich bei dem Fach um einen Ersatz für eine Pflichtfremdsprache
     *                             handelt (siehe auch istHKFS)
     * @param istKonfKoop          gibt an, ob das Religionsfach konfessionell kooperativ unterrichtet wird oder nicht
     *                             - Teil des Kürzels für die amtliche Schulstatistik
     * @param nurSII               gibt an, ob das Fach nur in der Sekundarstufe II unterrichtet wird
     * @param exportASD            gibt an, ob das Fach bei Export der amtlichen Schulstatistik berücksichtigt werden
     *                             soll oder nicht
     * @param gueltigVon           gibt an, in welchem Schuljahr das Fach einführt wurde
     *                             - ist kein Schuljahr bekannt, so wird null gesetzt
     * @param gueltigBis           gibt an, bis zu welchem Schuljahr das Fach gültig ist
     *                             - ist kein Schuljahr bekannt, so wird null gesetzt
     */
    private constructor();
    /**
     * Gibt eine Map von den Kürzels der Fächer auf die zugehörigen Fächer
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den Kürzels der Fächer auf die zugehörigen Fächer
     */
    private static getMapFaecherByKuerzel;
    /**
     * Prüft, ob die Schulform bei diesem Fach in irgendeiner Gliederung der
     * angegebenen Schulform zulässig ist.
     *
     * @param schulform    die Schulform
     *
     * @return true, falls das Fach in der Schulform zulässig ist, ansonsten false.
     */
    private hasSchulform;
    /**
     * Bestimmt alle Fächer, die in irgendeiner Gliederung der angegebenen Schulform
     * zulässig sind.
     *
     * @param schulform    die Schulform
     *
     * @return die zulässigen Fächer in der angegebenen Schulform
     */
    static get(schulform: Schulform | null): List<ZulaessigesFach>;
    /**
     * Gibt die Fachgruppe dieses Faches zurück.
     *
     * @return die Fachgruppe des Faches
     */
    getFachgruppe(): Fachgruppe | null;
    /**
     * Liefert alle Schulformen zurück, für welche das Fach gültig ist, sofern es für
     * die Schulform nicht auf einzelne Gliederungen eingeschränkt ist.
     *
     * @return eine Liste der Schulformen
     */
    getSchulformen(): List<Schulform>;
    /**
     * Liefert die Schulgliederungen zurück, wo das Fach bei der zugehörigen Schulformen
     * nur bei einzelnen Schulgliederungen zulässig ist.
     *
     * @return eine Liste der Schulgliederungen
     */
    getGliederungen(): List<Schulgliederung>;
    /**
     * Gibt das Fach zurück, welches dem übergebenen Kürzel zuzuordnet ist.
     * Ist der übergebene Wert ungültig, so wird {@link ZulaessigesFach#DEFAULT}
     * zurückgeben.
     *
     * @param kuerzel   das Statistik-Kürzel des Faches
     *
     * @return das zugehörige Fach oder {@link ZulaessigesFach#DEFAULT}
     */
    static getByKuerzelASD(kuerzel: String | null): ZulaessigesFach;
    /**
     * 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: ZulaessigesFach): number;
    /**
     * Returns an array with enumeration values.
     *
     * @returns the array with enumeration values
     */
    static values(): Array<ZulaessigesFach>;
    /**
     * 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): ZulaessigesFach | null;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_types_statkue_ZulaessigesFach(obj: unknown): ZulaessigesFach;
