/** @packageDocumentation
 * @module Tiles
 */
import { ByteStream } from "@itwin/core-bentley";
import { Transform } from "@itwin/core-geometry";
import { BatchType, ViewFlagOverrides } from "@itwin/core-common";
import { RenderSystem } from "../render/RenderSystem";
import { Viewport } from "../Viewport";
import { BatchedTileIdMap, RealityTile, RealityTileContent, Tile, TileDrawArgs, TileLoadPriority, TileRequest, TileRequestChannel, TileUser } from "./internal";
/** Serves as a "handler" for a specific type of [[TileTree]]. Its primary responsibilities involve loading tile content.
 * @internal
 */
export declare abstract class RealityTileLoader {
    private _produceGeometry?;
    private _containsPointClouds;
    readonly preloadRealityParentDepth: number;
    readonly preloadRealityParentSkip: number;
    constructor(_produceGeometry?: boolean | undefined);
    computeTilePriority(tile: Tile, viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number;
    abstract loadChildren(tile: RealityTile): Promise<Tile[] | undefined>;
    abstract getRequestChannel(tile: Tile): TileRequestChannel;
    abstract requestTileContent(tile: Tile, isCanceled: () => boolean): Promise<TileRequest.Response>;
    get wantDeduplicatedVertices(): boolean;
    abstract get maxDepth(): number;
    abstract get minDepth(): number;
    abstract get priority(): TileLoadPriority;
    protected get _batchType(): BatchType;
    protected get _loadEdges(): boolean;
    getBatchIdMap(): BatchedTileIdMap | undefined;
    get isContentUnbounded(): boolean;
    get containsPointClouds(): boolean;
    get parentsAndChildrenExclusive(): boolean;
    forceTileLoad(_tile: Tile): boolean;
    get maximumScreenSpaceError(): number | undefined;
    processSelectedTiles(selected: Tile[], _args: TileDrawArgs): Tile[];
    loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<RealityTileContent>;
    private _getFormat;
    loadGeometryFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem): Promise<RealityTileContent>;
    private loadGraphicsFromStream;
    get viewFlagOverrides(): ViewFlagOverrides;
    static computeTileLocationPriority(tile: Tile, viewports: Iterable<Viewport>, location: Transform): number;
}
//# sourceMappingURL=RealityTileLoader.d.ts.map