import { JavaObject } from '../../../java/lang/JavaObject';
import { GostBelegpruefungsArt } from '../../../core/abschluss/gost/GostBelegpruefungsArt';
import { List } from '../../../java/util/List';
import { AbiturdatenManager } from '../../../core/abschluss/gost/AbiturdatenManager';
import { Vector } from '../../../java/util/Vector';
import { GostBelegungsfehler } from '../../../core/abschluss/gost/GostBelegungsfehler';
export declare abstract class GostBelegpruefung extends JavaObject {
    protected readonly pruefungen_vorher: Array<GostBelegpruefung>;
    protected readonly manager: AbiturdatenManager;
    protected readonly pruefungs_art: GostBelegpruefungsArt;
    private readonly belegungsfehler;
    /**
     * Erstellt eine neue Belegprüfung, welche den angegebenen Daten-Manager verwendet.
     *
     * @param manager           der Daten-Manager für die Abiturdaten
     * @param pruefungs_art     die Art der durchzuführenden Prüfung (z.B. EF.1 oder GESAMT)
     * @param pruefungen_vorher   eine vorher durchgeführte Abiturprüfung
     */
    protected constructor(manager: AbiturdatenManager, pruefungs_art: GostBelegpruefungsArt, ...pruefungen_vorher: Array<GostBelegpruefung>);
    /**
     * Führt eine Belegprüfung durch.
     */
    pruefe(): void;
    /**
     * Fügt einen Belegungsfehler zu der Belegprüfung hinzu. Diese Methode wird von den Sub-Klassen
     * aufgerufen, wenn dort ein Belegungsfehler erkannt wird.
     *
     * @param fehler   der hinzuzufügende Belegungsfehler
     */
    protected addFehler(fehler: GostBelegungsfehler): void;
    /**
     * Gibt die Belegungsfehler zurück, welche bei der Gesamtprüfung aufgetreten sind.
     *
     * @return die Belegungsfehler
     */
    getBelegungsfehler(): Vector<GostBelegungsfehler>;
    /**
     * Git zurück, ob ein "echter" Belegungsfehler vorliegt und nicht nur eine Warnung oder ein Hinweis.
     *
     * @return true, falls ein "echter" Belegungsfehler vorliegt.
     */
    hatBelegungsfehler(): boolean;
    /**
     * Initialisiert die Daten für die Belegprüfungen mithilfe des Abiturdaten-Managers
     */
    protected abstract init(): void;
    /**
     * Führt alle Belegprüfungen für die EF.1 durch.
     */
    protected abstract pruefeEF1(): void;
    /**
     * Führt alle Belegprüfungen für die gesamte Oberstufe durch.
     */
    protected abstract pruefeGesamt(): void;
    /**
     * Gibt zurück, ob die angegebenen Belegprüfungsfehler einen "echten" Fehler beinhalten
     * und nicht nur einen Hinweise / eine Information.
     *
     * @param alle_fehler   die Belegprüfungsfehler und -informationen der durchgeführten Belegprüfungen
     *
     * @return true, falls kein "echter" Belegprüfungsfehler aufgetreten ist, sonst false
     */
    static istErfolgreich(alle_fehler: Vector<GostBelegungsfehler>): boolean;
    /**
     * Liefert alle Belegprüfungsfehler der übergebenen Teil-Belegprüfungen zurück.
     * Doppelte Fehler werden dabei nur einfach zurückgegeben (Set).
     *
     * @param pruefungen   die durchgeführten Belegprüfungen, deren fehler zurückgegeben werden sollen.
     *
     * @return die Menge der Belegprüfungsfehler
     */
    static getBelegungsfehlerAlle(pruefungen: List<GostBelegpruefung>): Vector<GostBelegungsfehler>;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_abschluss_gost_GostBelegpruefung(obj: unknown): GostBelegpruefung;
