import { JavaObject } from '../../../java/lang/JavaObject';
import { Variable } from '../../../core/kursblockung/satsolver/Variable';
export declare class Heap extends JavaObject {
    private _data;
    private _size;
    /**
     * Konstruktor.
     */
    constructor();
    toString(): String;
    /**
     * Überprüft, ob der Heap leer ist.
     *
     * @return TRUE, wenn der Heap leer ist.
     */
    isEmpty(): boolean;
    /**
     * Liefert das oberste (beste) Element des Heaps mit hoher Wahrscheinlichkeit.
     *
     * @return Liefert das oberste (beste) Element des Heaps mit hoher Wahrscheinlichkeit.
     */
    top(): Variable;
    /**
     * Liefert die Anzahl an Elementen im Heap.
     *
     * @return Die Anzahl an Elementen im Heap.
     */
    size(): number;
    /**
     * Fügt die Variable "var" dem Heap hinzu. Nach dem Einfügen kennt die Variable
     * mit {@link Variable#index} ihre eigene Position in diesem Heap.
     *
     * @param pVar Die einzufügende Variable.
     */
    insert(pVar: Variable): void;
    /**
     * Entfernt die Variable pVar vom Heap. Dabei wird zunächst mit Hilfe von
     * {@link Variable#index} die Position bestimmt. Anschließend wird der Heap so
     * transformiert, dass die Variable entfernt werden kann.
     *
     * @param pVar Die zu entfernende Variable.
     */
    remove(pVar: Variable): void;
    /**
     * Falls sich die Variable pVar im Heap befindet, wird sie entfernt und direkt
     * wieder hinzugefügt. Diese Methode muss aufgerufen werden, sobald die Variable
     * eine neue Bewertung erhalten hat.
     *
     * @param pVar Die Variable, deren Bewertung sich geändert hat.
     */
    update(pVar: Variable): void;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_kursblockung_satsolver_Heap(obj: unknown): Heap;
