/** @packageDocumentation
 * @module TileTreeSupplier
 */
import { Id64String } from "@itwin/core-bentley";
import { OrbitGtBlobProps, RealityDataSourceKey, ViewFlagOverrides } from "@itwin/core-common";
import { Range3d, Transform, Vector3d } from "@itwin/core-geometry";
import { OrbitGtDataManager } from "@itwin/core-orbitgt";
import { HitDetail } from "../HitDetail";
import { IModelConnection } from "../IModelConnection";
import { RenderMemory } from "../render/RenderMemory";
import { RenderSystem } from "../render/RenderSystem";
import { RealityModelTileTree, Tile, TileContent, TileDrawArgs, TileParams, TileRequest, TileTree, TileTreeOwner, TileTreeParams } from "./internal";
/** @internal */
export declare function createOrbitGtTileTreeReference(props: OrbitGtTileTree.ReferenceProps): RealityModelTileTree.Reference;
declare class OrbitGtRootTile extends Tile {
    protected _loadChildren(_resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void;
    requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response>;
    get channel(): import("./TileRequestChannel").TileRequestChannel;
    readContent(_data: TileRequest.ResponseData, _system: RenderSystem, _isCanceled?: () => boolean): Promise<TileContent>;
    freeMemory(): void;
    constructor(params: TileParams, tree: TileTree);
}
/** @internal */
export declare class OrbitGtTileTree extends TileTree {
    private _dataManager;
    private _centerOffset;
    private _ecefTransform;
    private _tileParams;
    rootTile: OrbitGtRootTile;
    viewFlagOverrides: ViewFlagOverrides;
    private _tileGraphics;
    constructor(treeParams: TileTreeParams, _dataManager: OrbitGtDataManager, cloudRange: Range3d, _centerOffset: Vector3d, _ecefTransform: Transform);
    getEcefTransform(): Promise<Transform | undefined>;
    dispose(): void;
    protected _selectTiles(_args: TileDrawArgs): Tile[];
    get is3d(): boolean;
    get isContentUnbounded(): boolean;
    get maxDepth(): number | undefined;
    private _doPrune;
    prune(): void;
    collectStatistics(stats: RenderMemory.Statistics): void;
    draw(args: TileDrawArgs): void;
}
/** @internal */
export declare namespace OrbitGtTileTree {
    interface ReferenceProps extends RealityModelTileTree.ReferenceBaseProps {
        orbitGtBlob?: OrbitGtBlobProps;
        modelId?: Id64String;
    }
    function createOrbitGtTileTree(rdSourceKey: RealityDataSourceKey, iModel: IModelConnection, modelId: Id64String): Promise<TileTree | undefined>;
}
/** Supplies a reality data [[TileTree]] from a URL. May be associated with a persistent [[GeometricModelState]], or attached at run-time via a [[ContextOrbitGtState]].
 * @internal exported strictly for tests.
 */
export declare class OrbitGtTreeReference extends RealityModelTileTree.Reference {
    readonly treeOwner: TileTreeOwner;
    protected _rdSourceKey: RealityDataSourceKey;
    private readonly _modelId;
    get castsShadows(): boolean;
    get modelId(): string;
    constructor(props: OrbitGtTileTree.ReferenceProps);
    canSupplyToolTip(hit: HitDetail): boolean;
    getToolTip(hit: HitDetail): Promise<HTMLElement | string | undefined>;
}
export {};
//# sourceMappingURL=OrbitGtTileTree.d.ts.map