import { JavaObject } from '../../../java/lang/JavaObject';
import { Schulform } from '../../../core/types/statkue/Schulform';
import { List } from '../../../java/util/List';
import { RGBFarbe } from '../../../core/types/RGBFarbe';
export declare class Fachgruppe 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 FG1_D: Fachgruppe;
    static readonly FG2_AL: Fachgruppe;
    static readonly FG3_FS: Fachgruppe;
    static readonly FG4_MS: Fachgruppe;
    static readonly FG5_ME: Fachgruppe;
    static readonly FG6_GS: Fachgruppe;
    static readonly FG7_PL: Fachgruppe;
    static readonly FG8_RE: Fachgruppe;
    static readonly FG9_M: Fachgruppe;
    static readonly FG10_NW: Fachgruppe;
    static readonly FG11_WN: Fachgruppe;
    static readonly FG12_SP: Fachgruppe;
    static readonly FG13_VX: Fachgruppe;
    static readonly FG14_PX: Fachgruppe;
    static readonly FG15_BUE: Fachgruppe;
    static readonly FG16_BBS: Fachgruppe;
    static readonly FG17_BBS: Fachgruppe;
    static readonly FG18_DF: Fachgruppe;
    static readonly FG19_BP: Fachgruppe;
    static readonly FG20_BLL: Fachgruppe;
    static readonly FG21_WP: Fachgruppe;
    static readonly FG22_ZUV: Fachgruppe;
    static readonly FG23_ANG: Fachgruppe;
    static readonly FG24_D_SP: Fachgruppe;
    static readonly FG25_SU: Fachgruppe;
    static readonly FG26_FOE: Fachgruppe;
    static readonly FG27_ABA: Fachgruppe;
    static readonly FG28_PA: Fachgruppe;
    static readonly FG29_IF: Fachgruppe;
    static VERSION: number;
    private static readonly _map;
    readonly id: number;
    readonly fachbereich: Number | null;
    readonly idSchild: Number | null;
    readonly bezeichnung: String;
    readonly kuerzel: String;
    readonly farbe: RGBFarbe;
    readonly schulformenKuerzel: List<String>;
    private schulformen;
    readonly sortierung: number;
    readonly fuerZeugnis: boolean;
    readonly gueltigVon: Number | null;
    readonly gueltigBis: Number | null;
    /**
     * Erzeugt eine neue Fachgruppe in der Aufzählung.
     *
     * @param id                   die eindeutige ID der Fachgruppe
     * @param fachbereich          die Nummer für den Fachbereich, sofern festgelegt, ansonsten null
     * @param idSchild             die alte Fachgruppen-ID, welche in Schild_NRW 2.x verwendet wurde
     * @param bezeichnung          die Bezeichnung der Fachgruppe
     * @param kuerzel              das Kürzel der Fachgruppe
     * @param farbe                die Farbe, die der Fachgruppe zugeordnet wird oder null, falls die Standard-Farbe Weiss
     *                             zugeordnet werden soll. Diese
     * @param schulformenKuerzel   eine Liste mit den Kürzeln der Schulformen, bei denen die Fachgruppe vorkommt
     * @param sortierung           ein Zahlwert, welche die Standard-Reihenfolge der Fachgruppen in der Visualisierung angibt
     * @param fuerZeugnis          gibt an, ob die Fachgruppe für die Unterteilung auf Zeugnissen genutzt wird oder nicht
     * @param gueltigVon           gibt an, in welchem Schuljahr die Fachgruppe einführt wurde - ist kein Schuljahr bekannt, so wird null gesetzt
     * @param gueltigBis           gibt an, bis zu welchem Schuljahr die Fachgruppe gültig ist - ist kein Schuljahr bekannt, so wird null gesetzt
     */
    private constructor();
    /**
     * Gibt eine Map von den IDs der Fachgruppen auf die zugehörigen Fachgruppen
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den IDs der Fachgruppen auf die zugehörigen Fachgruppen
     */
    private static getMap;
    /**
     * Liefert alle Schulformen zurück, bei welchen die Schulgliederung vorkommt.
     *
     * @return eine Liste der Schulformen
     */
    getSchulformen(): List<Schulform>;
    /**
     * 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;
    /**
     * Liefert die Fachgruppe zu der übergebenen ID der Fachgruppe zurück.
     *
     * @param id   die ID der Fachgruppe
     *
     * @return die Fachgruppe oder null, falls die id ungültig ist
     */
    static getByID(id: number): Fachgruppe | null;
    /**
     * Bestimmt alle Fachgruppen, die in irgendeiner Gliederung der angegebenen Schulform
     * zulässig sind.
     *
     * @param schulform    die Schulform
     *
     * @return die Fachgruppen in der angegebenen Schulform
     */
    static get(schulform: Schulform | null): List<Fachgruppe>;
    /**
     * 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: Fachgruppe): number;
    /**
     * Returns an array with enumeration values.
     *
     * @returns the array with enumeration values
     */
    static values(): Array<Fachgruppe>;
    /**
     * 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): Fachgruppe | null;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_types_statkue_Fachgruppe(obj: unknown): Fachgruppe;
