/**
 * A Map that tracks reference counts for keys.
 */
export declare class ReferenceCounter<T> implements Pick<Set<T>, 'keys' | 'delete'> {
    private refCount;
    /**
     * Increment the refCount for the given key.
     *
     * @returns true if the given key is new.
     */
    increment(key: T): boolean;
    /**
     * Decrements the refCount for the given key.
     *
     * @returns true if this was the given key's last reference.
     */
    decrement(key: T): boolean;
    /**
     * Returns an iterable of registered keys.
     */
    keys(): IterableIterator<T> | any;
    delete(key: T): boolean;
}
