import { JavaObject } from '../../../java/lang/JavaObject';
import { Schulform } from '../../../core/types/statkue/Schulform';
import { List } from '../../../java/util/List';
export declare class Schulgliederung 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 DEFAULT: Schulgliederung;
    static readonly A01: Schulgliederung;
    static readonly A02: Schulgliederung;
    static readonly A03: Schulgliederung;
    static readonly A04: Schulgliederung;
    static readonly A05: Schulgliederung;
    static readonly A06: Schulgliederung;
    static readonly A07: Schulgliederung;
    static readonly A08: Schulgliederung;
    static readonly A09: Schulgliederung;
    static readonly A10: Schulgliederung;
    static readonly A11: Schulgliederung;
    static readonly A12: Schulgliederung;
    static readonly A13: Schulgliederung;
    static readonly A14: Schulgliederung;
    static readonly A15: Schulgliederung;
    static readonly A16: Schulgliederung;
    static readonly AB: Schulgliederung;
    static readonly B01: Schulgliederung;
    static readonly B02: Schulgliederung;
    static readonly B03: Schulgliederung;
    static readonly B04: Schulgliederung;
    static readonly B05: Schulgliederung;
    static readonly B06: Schulgliederung;
    static readonly B07: Schulgliederung;
    static readonly B08: Schulgliederung;
    static readonly B09: Schulgliederung;
    static readonly B10: Schulgliederung;
    static readonly BT: Schulgliederung;
    static readonly BV: Schulgliederung;
    static readonly C01: Schulgliederung;
    static readonly C02: Schulgliederung;
    static readonly C03: Schulgliederung;
    static readonly C04: Schulgliederung;
    static readonly C05: Schulgliederung;
    static readonly C06: Schulgliederung;
    static readonly C07: Schulgliederung;
    static readonly C08: Schulgliederung;
    static readonly C09: Schulgliederung;
    static readonly C10: Schulgliederung;
    static readonly C11: Schulgliederung;
    static readonly C12: Schulgliederung;
    static readonly C13: Schulgliederung;
    static readonly D01: Schulgliederung;
    static readonly D02: Schulgliederung;
    static readonly D03: Schulgliederung;
    static readonly D04: Schulgliederung;
    static readonly D05: Schulgliederung;
    static readonly D06: Schulgliederung;
    static readonly E01: Schulgliederung;
    static readonly E02: Schulgliederung;
    static readonly E03: Schulgliederung;
    static readonly E04: Schulgliederung;
    static readonly E05: Schulgliederung;
    static readonly E06: Schulgliederung;
    static readonly E07: Schulgliederung;
    static readonly E08: Schulgliederung;
    static readonly E09: Schulgliederung;
    static readonly E10: Schulgliederung;
    static readonly E11: Schulgliederung;
    static readonly E12: Schulgliederung;
    static readonly E13: Schulgliederung;
    static readonly ER: Schulgliederung;
    static readonly EVB: Schulgliederung;
    static readonly G01: Schulgliederung;
    static readonly G02: Schulgliederung;
    static readonly GGS: Schulgliederung;
    static readonly GGY: Schulgliederung;
    static readonly GMS: Schulgliederung;
    static readonly GR: Schulgliederung;
    static readonly GRH: Schulgliederung;
    static readonly GS: Schulgliederung;
    static readonly GY: Schulgliederung;
    static readonly GY8: Schulgliederung;
    static readonly GY9: Schulgliederung;
    static readonly H: Schulgliederung;
    static readonly H01: Schulgliederung;
    static readonly H02: Schulgliederung;
    static readonly K02: Schulgliederung;
    static readonly R: Schulgliederung;
    static readonly R00: Schulgliederung;
    static readonly R01: Schulgliederung;
    static readonly R02: Schulgliederung;
    static readonly RH: Schulgliederung;
    static readonly RKB: Schulgliederung;
    static readonly SRH: Schulgliederung;
    static readonly SSI: Schulgliederung;
    static readonly X01: Schulgliederung;
    static readonly X02: Schulgliederung;
    static readonly X03: Schulgliederung;
    static readonly X04: Schulgliederung;
    static readonly X05: Schulgliederung;
    static readonly X06: Schulgliederung;
    static readonly X07: Schulgliederung;
    static readonly X08: Schulgliederung;
    static readonly Y8: Schulgliederung;
    static readonly Z01: Schulgliederung;
    private static readonly _map;
    readonly id: String;
    readonly istBK: boolean;
    readonly schulformenKuerzel: List<String>;
    private schulformen;
    readonly istAuslaufend: boolean;
    readonly istAusgelaufen: boolean;
    readonly beschreibung: String;
    readonly bkAnlage: String | null;
    readonly bkTyp: String | null;
    readonly bkIndex: Number | null;
    readonly istVZ: boolean;
    readonly bkAbschlussBerufsbildend: String | null;
    readonly bkAbschlussAllgemeinbildend: String | null;
    readonly gueltigVon: Number | null;
    readonly gueltigBis: Number | null;
    /**
     * Erzeugt eine neue Schulgliederung in der Aufzählung.
     *
     * @param id                            die eindeutige id der Schulgliederung
     * @param istBK                         gibt an, ob es sich um einen Bildungsgang am Berufskolleg handelt
     * @param schulformenKuerzel            die Kürzel der Schulformen, bei welchen die Schulgliederung vorkommt
     * @param istAuslaufend                 gibt an, ob es sich um eine auslaufende Schulgliederung oder einen ausgelaufenden Bildungsgang handelt
     * @param istAusgelaufen                gibt an, ob es sich um eine ausgelaufene Schulgliederung oder einen ausgelaufenen Bildungsgang handelt
     * @param beschreibung                  die textuelle Beschreibung der Schulgliederung bzw. des Bildungsganges
     * @param bkAnlage                      die Anlage, wenn es sich um einen Bildungsgang am Berufskolleg handelt
     * @param bkTyp                         der Typ der Anlage, wenn es sich um einen Bildungsgang am Berufskolleg handelt
     * @param bkIndex                       der Index für den Zugriff auf die Fachklassen am Berufskolleg. Dieser kann bei
     *                                      unterschiedlichen Gliederungen identisch sein.
     * @param istVZ                         gibt an, ob es sich um einen Bildungsgang in Vollzeit handelt oder nicht
     * @param bkAbschlussBerufsbildend      gibt den berufsbildenden Abschluss an, der in diesem Bildungsgang erreicht werden
     *                                      kann, wenn es sich um einen Bildungsgang am Berufskolleg handelt.
     * @param bkAbschlussAllgemeinbildend   gibt den allgemeinbildenden Abschluss an, der in diesem Bildungsgang erreicht
     *                                      werden kann, wenn es sich um einen Bildungsgang am Berufskolleg handelt.
     *                                      Die Angabe ggf. mehrere Abschlüsse beinhalten, wenn im Rahmen des Bildungsganges
     *                                      mehrere Abschlüsse möglich sind.
     */
    private constructor();
    /**
     * Gibt eine Map von den Kürzels der Schulgliederungen auf die zugehörigen Schulgliederungen
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den Kürzels der Schulgliederungen auf die zugehörigen Schulgliederungen
     */
    private static getMapSchulgliederungByKuerzel;
    /**
     * Liefert die Schulgliederung anhand des übergebenen Kürzels zurpck.
     *
     * @param kuerzel   das Kürzel der Schulgliederung
     *
     * @return die Schulgliederung oder null, falls das Kürzel ungültig ist
     */
    static getByKuerzel(kuerzel: String | null): Schulgliederung | null;
    /**
     * Liefert alle Schulformen zurück, bei welchen die Schulgliederung vorkommt.
     *
     * @return eine Liste der Schulformen
     */
    getSchulformen(): List<Schulform>;
    /**
     * Liefert alle zulässigen Gliederungen für die angegeben Schulform.
     *
     * @param schulform   die Schulform
     *
     * @return die bei der Schulform zulässigen Gliederungen
     */
    static get(schulform: Schulform | null): List<Schulgliederung>;
    /**
     * Prüft anhand des Schulform-Kürzels, ob die Schulform diese Gliederung
     * hat oder nicht.
     *
     * @param kuerzel   das Kürzel der Schulform
     *
     * @return true, falls die Gliederung bei der Schulform existiert und ansonsten false
     */
    hasSchulformByKuerzel(kuerzel: String | null): boolean;
    /**
     * Prüft, ob die Schulform diese Gliederung hat oder nicht.
     *
     * @param schulform   die Schulform
     *
     * @return true, falls die Gliederung bei der Schulform existiert und ansonsten false
     */
    hasSchulform(schulform: Schulform | null): boolean;
    /**
     * Gibt zurück, ob es sich um einen 8-jährigen gymnasialen Bildungsgang
     * handelt oder nicht.
     *
     * @return true, falls es sich um einen 8-jährigen gymnasialen Bildungsgang
     *         handelt, sonst false
     */
    istG8(): boolean;
    /**
     * Gibt die Standard-Gliederung der angegebenen Schulform zurück.
     *
     * @param sf        die Schulform
     *
     * @return die Schulgliederung, falls die Schulform gültig ist und ansonsten null
     */
    static getDefault(sf: Schulform | null): Schulgliederung | null;
    /**
     * Gibt die Gliederung der angegebenen Schulform mit dem übergegebenen Kürzel zurück.
     * Dabei setzt sich das zu prüfende Kürzel aus Anlage und Typ zusammen.
     *
     * @param sf        die Schulform
     * @param kuerzel   Anlage und Typ als String aneinandergehängt
     *
     * @return die Schulgliederung, falls die Parameter gültige Werte sind und ansonsten null
     */
    static getBySchulformAndKuerzel(sf: Schulform | null, kuerzel: String | null): Schulgliederung | 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: Schulgliederung): number;
    /**
     * Returns an array with enumeration values.
     *
     * @returns the array with enumeration values
     */
    static values(): Array<Schulgliederung>;
    /**
     * 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): Schulgliederung | null;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_types_statkue_Schulgliederung(obj: unknown): Schulgliederung;
