/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */ /** */
import '../MapExtensions';
import { BimCoreApiClient } from './client/BimCoreApiClient';
import { BimGeometricFeaturesReader, DecodedGeometricFeatures } from './bim-geometric-features-reader';
import type { FlatSegment3 } from '@twinfinity/geometry';
import { BimProductMesh } from './BimProductMesh';
import { BimIfcObject } from './bim-ifc-object';
import { BimVertexDataRepository } from './bim-vertex-data-repository';
export declare class BimGeometricFeaturesRepository {
    private readonly _bimApi?;
    private static readonly _temp;
    readonly _geometricFeaturesReader: BimGeometricFeaturesReader;
    private readonly _decodedFeaturesByHash;
    readonly _isGeometricFeaturesUrlAdded: Map<string, Promise<boolean>>;
    constructor(_bimApi?: BimCoreApiClient | undefined);
    /** Inject pre-decoded feature data for a mesh hash (used by the T8 loader which reads edges from t8gd). */
    setDecodedFeatures(hash: string, features: DecodedGeometricFeatures): void;
    /**
     * Populate the repository by reading edge indices out of the t8gd buffer managed by
     * the vertex data repository. Edges in t8gd reference the position-deduplicated vertex
     * array — the same array exposed by `BimVertexDataRepository.get` for V2 format — so
     * the indices match the positions used at render time.
     *
     * Use this in place of {@link assignGeometricFeaturesToProducts} whenever the geometry
     * resource is `.t8gd`. The `.geom-feat` file's edge indices are in the welded-vertex
     * space which does NOT match the t8gd deduplicated layout.
     */
    populateFromVertexDataRepository(products: readonly BimIfcObject[], vertexDataRepository: BimVertexDataRepository): void;
    assignGeometricFeaturesToProducts(geometricFeaturesUrl: URL): Promise<boolean>;
    /**
     * Resolve feature edges for a single mesh on demand.
     * Looks up the mesh's geometry hash in the decoded feature data,
     * resolves vertex indices to world-space coordinates, and caches the
     * result on the mesh as {@link FlatSegment3} tuples — the format
     * consumed directly by `CreateGreasedLine`.
     *
     * Returns the edges, or undefined if no feature data exists for this mesh.
     */
    resolveEdgesForMesh(mesh: BimProductMesh): FlatSegment3[] | undefined;
    clear(): void;
    private fetchAndDecodeGeometricFeatures;
}
//# sourceMappingURL=bim-geometric-features-repository.d.ts.map