import { JavaObject } from '../../java/lang/JavaObject';
import { GEAbschlussFach } from '../../core/data/abschluss/GEAbschlussFach';
import { AbschlussErgebnis } from '../../core/data/abschluss/AbschlussErgebnis';
import { GEAbschlussFaecher } from '../../core/data/abschluss/GEAbschlussFaecher';
import { List } from '../../java/util/List';
import { Abschluss } from '../../core/types/Abschluss';
import { GELeistungsdifferenzierteKursart } from '../../core/types/ge/GELeistungsdifferenzierteKursart';
export declare class AbschlussManager extends JavaObject {
    constructor();
    /**
     * Erzeugt ein Ergebnis der Abschlussberechnung unter Angabe, ob dieser erworben
     * wurde. Die Liste der Nachprüfungsfächer ist leer und ein Log ist nicht zugeordnet.
     * Sollten Nachprüfungsmöglichkeiten bestehen so ist die Methode
     * {@link AbschlussManager#getErgebnisNachpruefung} zu nutzen.
     * und ob dieser erworben wurde.
     *
     * @param abschluss   der Abschluss für den das Ergebnis erzeugt wird
     * @param erworben    true, falls der Abschluss erworben wurde, sonst false
     *
     * @return das Ergebnis der Abschlussberechnung
     */
    static getErgebnis(abschluss: Abschluss | null, erworben: boolean): AbschlussErgebnis;
    /**
     * Erzeugt ein Ergebnis der Abschlussberechnung, wo der Abschluss nicht erreicht wurde, aber ggf.
     * noch durch Nachprüfungen erreicht werden kann. Ein log wird nicht zugeordnet.
     *
     * @param abschluss    der Abschluss für den das Ergebnis erzeugt wird
     * @param np_faecher   eine Liste von Nachprüfungsfächern, falls eine Nachprüfung möglich ist,
     *                     ansonsten null oder eine leere Liste
     *
     * @return das Ergebnis der Abschlussberechnung
     */
    static getErgebnisNachpruefung(abschluss: Abschluss | null, np_faecher: List<String> | null): AbschlussErgebnis;
    /**
     * Gibt an, ob für einen Abschluss eine Nachprüfungsmöglichkeit besteht.
     *
     * @param ergebnis   das Abschluss-Ergebnis bei dem auf eine Nachprüfungsmöglichkeit
     *                   geprüft werden soll.
     *
     * @return true, falls eine Nachprüfungsmöglichkeit besteht, sonst false
     */
    static hatNachpruefungsmoeglichkeit(ergebnis: AbschlussErgebnis): boolean;
    /**
     * Gibt die Nachprüfungsfächer als Komma-separierten String zurück.
     *
     * @param ergebnis   das Abschluss-Ergebnis bei dem die Nachprüfungsmöglichkeiten
     *                   ausgegeben werden sollen
     *
     * @return die Nachprüfungsfächer als Komma-separierten String
     */
    static getNPFaecherString(ergebnis: AbschlussErgebnis): String;
    /**
     * Vergleicht die beiden Abschlüsse, ob sie identisch sind. Ein
     * Übergabewert null wird als {@link Abschluss#OHNE_ABSCHLUSS}
     * interpretiert.
     *
     * @param a   der eine Abschluss
     * @param b   der andere Abschluss
     *
     * @return true, falls sie identisch sind und ansonsten false
     */
    static equalsAbschluesse(a: String | null, b: String | null): boolean;
    /**
     * Gibt den Abschluss zurück. Im Falle das kein Abschluss angegeben ist
     * wird Abschluss.OHNE_ABSCHLUSS zurückgegeben.
     *
     * @param ergebnis   das Ergebnis
     *
     * @return der Abschluss
     */
    static getAbschluss(ergebnis: AbschlussErgebnis): String;
    /**
     * Die Methode dient dem Erzeugen eines Faches für die Abschlussberechnung.
     *
     * @param kuerzel           das Kürzel des Faches
     * @param bezeichnung       die Bezeichnung des Faches
     * @param note              die Note, die in dem Fach erteilt wurde
     * @param kursart           gibt die Kursart Faches an: leistungsdifferenzierter (E-Kurs, G-Kurs) oder sonstiger Kurs
     * @param istFremdsprache   gibt an, ob es sich bei dem Fach um eine Fremdsprache handelt oder nicht
     *
     * @return das Abschlussfach
     */
    static erstelleAbschlussFach(kuerzel: String, bezeichnung: String | null, note: number, kursart: GELeistungsdifferenzierteKursart, istFremdsprache: Boolean | null): GEAbschlussFach;
    /**
     * Liefert eine List mit den Fachkürzeln aus der übergebenen Liste mit Abschlussfächern.
     *
     * @param faecher   die Liste mit Abschlussfächern
     *
     * @return die Liste mit den Fachkürzeln
     */
    static getKuerzel(faecher: List<GEAbschlussFach>): List<String>;
    /**
     * Prüft, ob vier leistungsdifferenzierte Fächer belegt wurden. Dabei wird nicht geprüft, ob
     * es sich um G oder E-Kurse handelt.
     *
     * @param abschluss_faecher   die Abschlussfächer
     *
     * @return true, falls vier leistungsdifferenzierte Fächer belegt wurden, sonst false
     */
    static pruefeHat4LeistungsdifferenzierteFaecher(abschluss_faecher: GEAbschlussFaecher): boolean;
    /**
     * Prüft, ob Duplikate bei den Kürzeln der Fächer vorkommen. Dies darf zur korrekten
     * Ausführung des Abschlussalgorithmus nicht vorkommen.
     *
     * @param abschluss_faecher   die Abschlussfächer
     *
     * @return true, falls keine Duplikate vorkommen, sonst false
     */
    static pruefeKuerzelDuplikate(abschluss_faecher: GEAbschlussFaecher): boolean;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_abschluss_AbschlussManager(obj: unknown): AbschlussManager;
