import { JavaObject } from '../../../java/lang/JavaObject';
import { LinkedCollection } from '../../../core/adt/collection/LinkedCollection';
import { Clause } from '../../../core/kursblockung/satsolver/Clause';
export declare class Variable extends JavaObject {
    readonly nr: number;
    readonly statSatFree: Array<Array<number>>;
    readonly clauses: LinkedCollection<Clause>;
    readonly neighbours: LinkedCollection<Variable>;
    index: number;
    negation: Variable | null;
    /**
     * Konstruktor. Erzeugt eine neue Variable mit einer bestimmten Variablen-Nummer
     * (ungleich 0).
     *
     * @param pNr Die Nummer der Variablen (ungleich 0).
     */
    constructor(pNr: number);
    toString(): String;
    /**
     * Überprüft, ob diese Variable noch auf TRUE gesetzt werden kann.
     *
     * @return TRUE, falls man diese Variable und einen logischen Widerspruch
     *         erfüllen kann.
     */
    isUnsat(): boolean;
    /**
     * Vergleicht die Statistik zweier Variablen und bestimmt, für welche man sich
     * entscheiden sollte.
     *
     * @param b Die Variable, mit der verglichen werden soll.
     *
     * @return TRUE, wenn diese Instanz besser als "b" ist.
     */
    isBetterThan(b: Variable): boolean;
    /**
     * Debug-Ausgabe. Nur für Testzwecke.
     */
    debug(): void;
    /**
     * Liefert die Anzahl an noch nicht erfüllten Klauseln.
     *
     * @return Die Anzahl an noch nicht erfüllten Klauseln.
     */
    getClauseOccurences(): number;
    isTranspiledInstanceOf(name: string): boolean;
}
export declare function cast_de_nrw_schule_svws_core_kursblockung_satsolver_Variable(obj: unknown): Variable;
