import { Set } from "typescript-collections"; export declare function getTotalRegistrations(): number; export declare class Source { constructor(origin: Vertex, register_: () => () => void); origin: Vertex; private register_; private registered; private deregister_; register(target: Vertex): void; deregister(target: Vertex): void; } export declare enum Color { black = 0, gray = 1, white = 2, purple = 3 } export declare function setVerbose(v: boolean): void; export declare function describeAll(v: Vertex, visited: Set): void; export declare class Vertex { static NULL: Vertex; static collectingCycles: boolean; static toBeFreedList: Vertex[]; id: number; constructor(name: string, rank: number, sources: Source[]); name: string; rank: number; sources: Source[]; targets: Vertex[]; childrn: Vertex[]; refCount(): number; visited: boolean; register(target: Vertex): boolean; deregister(target: Vertex): void; private incRefCount; private decRefCount; addSource(src: Source): void; private ensureBiggerThan; descr(): string; color: Color; buffered: boolean; refCountAdj: number; children(): Vertex[]; increment(referrer: Vertex): boolean; decrement(referrer: Vertex): void; release(): void; free(): void; possibleRoots(): void; static collectCycles(): void; static markRoots(): void; static scanRoots(): void; static collectRoots(): void; markGray(): void; scan(): void; scanBlack(): void; collectWhite(): void; }