export type Entry<T> = Readonly<{
    left: T;
    right: T;
}>;
export declare class InfiniteLoopTracker<T> {
    private readonly _history;
    private _isEntryEqual;
    private readonly _isEqual;
    append(entry: Entry<T>): void;
    clone(): InfiniteLoopTracker<T>;
    constructor(isEqual: (left: T, right: T) => boolean, source?: InfiniteLoopTracker<T>);
    getHistory(): ReadonlyArray<Entry<T>>;
    getRepeatingEntries(): ReadonlyArray<Entry<T>> | null;
}
