import { JavaObject } from '../../../java/lang/JavaObject';
import { GEAbschlussFach } from '../../../core/data/abschluss/GEAbschlussFach';
import { List } from '../../../java/util/List';
import { AbschlussFaecherGruppe } from '../../../core/abschluss/ge/AbschlussFaecherGruppe';
import { Predicate } from '../../../java/util/function/Predicate';
export declare class AbschlussFaecherGruppen extends JavaObject {
    readonly fg1: AbschlussFaecherGruppe;
    readonly fg2: AbschlussFaecherGruppe;
    /**
     * Erzeugt eine neues Objekt AbschlussFaecherGruppen
     *
     * @param fg1   die Fächergruppe 1
     * @param fg2   die Fächergruppe 2
     */
    constructor(fg1: AbschlussFaecherGruppe, fg2: AbschlussFaecherGruppe);
    /**
     * Prüft, ob eine der beiden Fächergruppen leer ist.
     *
     * @return true, falls eine der beiden Fächergruppen leer ist.
     */
    isEmpty(): boolean;
    /**
     * Prüft, ob das Fach mit dem angegebenen Fachkürzel in einer der beiden
     * Fächergruppen enthalten ist oder nicht.
     *
     * @param kuerzel   das Kürzel des Faches, welches geprüft werden soll.
     *
     * @return true, falls das Fach vorhanden ist, und ansonsten false
     */
    contains(kuerzel: String | null): boolean;
    /**
     * Bestimmt alle Fächer beider Fächergruppen, welche dem übergebenen
     * Filterkriterium entsprechen.
     *
     * @param filter   die Funktion, die das Kriterium für die gesuchten Fächer angibt.
     *
     * @return eine Liste der Fächer, die dem Filterkriterium entsprechen
     */
    getFaecher(filter: Predicate<GEAbschlussFach>): List<GEAbschlussFach>;
    /**
     * Gibt die Anzahl der Fächer beider Fächergruppen zurück, welche dem übergebenen
     * Filterkriterium entsprechen.
     *
     * @param filter   die Funktion, die das Kriterium für die gesuchten Fächer angibt.
     *
     * @return die Anzahl der Fächer
     */
    getFaecherAnzahl(filter: Predicate<GEAbschlussFach>): number;
    /**
     * Bestimmt die Kürzel aller Fächer beider Fächergruppen, welche dem übergebenen
     * Filterkriterium entsprechen.
     *
     * @param filter   die Funktion, die das Kriterium für die gesuchten Fächer angibt.
     *
     * @return eine Liste der Kürzel der Fächer, die dem Filterkriterium entsprechen
     */
    getKuerzel(filter: Predicate<GEAbschlussFach>): List<String>;
    /**
     * Erstellt eine Zeichenkette mit einer Komma-separierten Liste der Kürzel aller Fächer
     * beider Fächergruppen, welche dem übergebenen Filterkriterium entsprechen.
     *
     * @param filter   die Funktion, die das Kriterium für die gesuchten Fächer angibt.
     *
     * @return die Zeichenkette mit einer Komma-separierten Liste der Fächerkürzel
     */
    getKuerzelListe(filter: Predicate<GEAbschlussFach>): String;
    /**
     * Erstellt eine Zeichenkette mit einer Komma-separierten Liste der Kürzel aller Fächer
     * beider Fächergruppen, welche dem übergebenen Filterkriterium entsprechen. Dabei
     * werden für die Fächergruppen jedoch unterschiedliche Filterkriterien angewendet.
     *
     * @param filterFG1   die Funktion, die das Kriterium für die gesuchten Fächer der Fächergruppe 1 angibt.
     * @param filterFG2   die Funktion, die das Kriterium für die gesuchten Fächer der Fächergruppe 2 angibt.
     *
     * @return die Zeichenkette mit einer Komma-separierten Liste der Fächerkürzel
     */
    getKuerzelListe(filterFG1: Predicate<GEAbschlussFach>, filterFG2: Predicate<GEAbschlussFach>): String;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_abschluss_ge_AbschlussFaecherGruppen(obj: unknown): AbschlussFaecherGruppen;
