import { JavaObject } from '../../java/lang/JavaObject';
import { GostBlockungsergebnisManager } from '../../core/utils/gost/GostBlockungsergebnisManager';
import { GostBlockungsdatenManager } from '../../core/utils/gost/GostBlockungsdatenManager';
import type { List } from '../../java/util/List';
import { Class } from '../../java/lang/Class';
export declare class KursblockungAlgorithmusPermanent extends JavaObject {
private static readonly MILLIS_START;
private static readonly TOP_ERGEBNISSE;
private readonly _random;
private readonly _logger;
/**
* Die TOP-Ergebnisse werden als {@link KursblockungDynDaten}-Objekt gespeichert, da diese sortierbar sind.
*/
private readonly _top;
/**
* Jeder Algorithmus hat sein eigenes {@link KursblockungDynDaten}-Objekt. Das ist wichtig.
*/
private readonly algorithmenK;
/**
* Die Eingabe-Daten von der GUI.
*/
private readonly _input;
/**
* Die Zeitspanne nachdem alle Algorithmen neu erzeugt werden.
*/
private _zeitMax;
/**
* Die Zeitspanne reduziert sich schrittweise, da die GUI nur kurze Rechenintervalle dem Algorithmus gibt.
*/
private _zeitRest;
/**
* Der Index des aktuellen Algorithmus der als nächstes ausgeführt wird.
*/
private _currentIndex;
/**
* Initialisiert den Blockungsalgorithmus für eine vom Clienten initiierte dauerhafte Berechnung.
*
* @param pInput Das Eingabe-Objekt (der Daten-Manager).
*/
constructor(pInput: GostBlockungsdatenManager);
/**
* Liefert TRUE, falls die GUI die TOP-Liste aktualisieren soll.
*
* @param zeitProAufruf Die zur Verfügung stehende Zeit (in Millisekunden), um die ehemaligen Ergebnisse zu optimieren.
* @return TRUE, falls die GUI die TOP-Liste aktualisieren soll.
*/
next(zeitProAufruf: number): boolean;
/**
* Liefert TRUE, falls mindestens ein Algorithmus ein besseres Ergebnis gefunden hat.
*
* @return TRUE, falls mindestens ein Algorithmus ein besseres Ergebnis gefunden hat.
*/
private _neustart;
/**
* Liefert ein zufälliges Element aus der TOP-Liste (oder NULL);
*
* @return ein zufälliges Element aus der TOP-Liste (oder NULL);
*/
private _gibTopElementOrNull;
/**
* Liefert die Liste der aktuellen Top-Blockungsergebnisse.
*
Die ID der Blockungsergebnisse entspricht dem Index in der TOP-Liste.
*
* @return die Liste der aktuellen Top-Blockungsergebnisse.
*/
getBlockungsergebnisse(): List;
transpilerCanonicalName(): string;
isTranspiledInstanceOf(name: string): boolean;
static class: Class;
}
export declare function cast_de_svws_nrw_core_kursblockung_KursblockungAlgorithmusPermanent(obj: unknown): KursblockungAlgorithmusPermanent;
//# sourceMappingURL=KursblockungAlgorithmusPermanent.d.ts.map