/** @packageDocumentation
 * @module Tiles
 */
import { OrderedComparator } from "@itwin/core-bentley";
import { TileTree } from "./internal";
/** Interface adopted by an object that contains references to [[TileTree]]s, to expose those trees.
 * @see [[DisclosedTileTreeSet]].
 * @public
 * @extensions
 */
export interface TileTreeDiscloser {
    /** Add all [[TileTree]]s referenced by this object to the set. */
    discloseTileTrees: (trees: DisclosedTileTreeSet) => void;
}
/** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects.
 * @public
 * @extensions
 */
export declare class DisclosedTileTreeSet implements Iterable<TileTree> {
    private readonly _processed;
    private readonly _trees;
    /** Construct a new set.
     * @param comparator If supplied, a comparison function used to determine the order of iteration of the set; otherwise, iteration will proceed in insertion order.
     */
    constructor(comparator?: OrderedComparator<TileTree, TileTree>);
    /** Returns true if the specified tree has been [[add]]ed to the set. */
    has(tree: TileTree): boolean;
    /** Adds the specified tree to the set. */
    add(tree: TileTree): void;
    /** Iterates all trees in the set.
     * @note Do not [[add]] to the set during iteration.
     */
    [Symbol.iterator](): Iterator<TileTree>;
    /** The number of trees in the set. */
    get size(): number;
    /** Add all tile trees referenced by `discloser` to the set. */
    disclose(discloser: TileTreeDiscloser): void;
    /** Clear the contents of this set. */
    clear(): void;
}
//# sourceMappingURL=DisclosedTileTreeSet.d.ts.map