import { type TgdCamera } from "../../camera";
import { TgdColor } from "../../color";
import { TgdContext } from "../../context";
import { TgdDataset } from "../../dataset";
import { TgdGeometry } from "../../geometry";
import { TgdTransfo, TgdVec4 } from "../../math";
import { TgdTexture2D } from "../../texture";
import { ArrayNumber4, type TgdTypeArrayForElements } from "../../types";
import type { TgdFormatGltf, TgdFormatGltfAccessor, TgdFormatGltfBufferView, TgdFormatGltfCamera, TgdFormatGltfEmbededData, TgdFormatGltfImage, TgdFormatGltfMaterial, TgdFormatGltfMesh, TgdFormatGltfMeshPrimitive, TgdFormatGltfNode, TgdFormatGltfScene } from "../../types/gltf";
export declare class TgdDataGlb {
    private readonly chunks;
    private readonly images;
    readonly fileSize: number;
    static parse(content: ArrayBuffer): Promise<TgdDataGlb>;
    readonly json: Readonly<TgdFormatGltf>;
    private readonly cacheBufferViewDatas;
    /**
     * @param content The binary content of a GLB file.
     */
    private constructor();
    getJson(): Readonly<TgdFormatGltf>;
    createTransfoFromNode(node: TgdFormatGltfNode): TgdTransfo;
    createCameraByName(name: string): TgdCamera;
    getBufferViews(): TgdFormatGltfBufferView[];
    getBufferView(bufferViewIndex: number): TgdFormatGltfBufferView | undefined;
    getCamera(cameraIndex: number): TgdFormatGltfCamera;
    getImages(): TgdFormatGltfImage[];
    getImage(imageIndexOrName: number | string): TgdFormatGltfImage | undefined;
    getImageAsHTMLElement(imageIndexOrName: number | string): HTMLImageElement | undefined;
    getScenes(): TgdFormatGltfScene[];
    getScene(sceneIndex: number): TgdFormatGltfScene;
    getNodes(): TgdFormatGltfNode[];
    getNode(nodeIndex: number): TgdFormatGltfNode;
    getNodeByName(nodeName: string): TgdFormatGltfNode | undefined;
    getNodeByNameOrThrow(nodeName: string): TgdFormatGltfNode;
    getAccessor(accessorIndex?: number): TgdFormatGltfAccessor;
    getMaterial(materialIndex: number): TgdFormatGltfMaterial;
    getMesh(meshIndexOrName?: TgdFormatGltfMesh | number | string): TgdFormatGltfMesh | undefined;
    getMeshOrThrow(meshIndexOrName?: TgdFormatGltfMesh | number | string): TgdFormatGltfMesh;
    getMeshPrimitive(meshIndexOrName?: TgdFormatGltfMesh | number | string, primitiveIndex?: number): TgdFormatGltfMeshPrimitive;
    getMeshPrimitiveIndices(meshIndexOrName?: TgdFormatGltfMesh | number | string, primitiveIndex?: number): TgdTypeArrayForElements;
    getAccessorByAttributeName(primitive: TgdFormatGltfMeshPrimitive, attribName: string): TgdFormatGltfAccessor | TgdFormatGltfEmbededData;
    createTexture2D(context: TgdContext, textureIndex: number, color?: ArrayNumber4 | TgdVec4 | TgdColor): TgdTexture2D;
    getBufferViewData(accessor: TgdFormatGltfAccessor): Int8Array | Uint8Array | Int16Array | Uint16Array | Uint32Array | Float32Array;
    getBufferViewData(bufferViewIndex: number, type?: number | "Int8" | "Uint8" | "Int16" | "Uint16" | "Uint32" | "Float32"): Int8Array | Uint8Array | Int16Array | Uint16Array | Uint32Array | Float32Array;
    findAccessorForBufferView(bufferViewIndex: number): TgdFormatGltfAccessor | undefined;
    setAttrib(dataset: TgdDataset, attribName: string, meshIndexOrName?: TgdFormatGltfMesh | number | string, primitiveIndex?: number, primitiveAttribName?: string): void;
    makeGeometry(options?: {
        computeNormals?: boolean;
        meshIndex?: number | string;
        primitiveIndex?: number;
        attPositionName?: string;
        attNormalName?: string;
        attTextureCoordsName?: string;
    }): TgdGeometry;
    makeDataset({ meshIndex, primitiveIndex, attPositionName, attNormalName, attTextureCoordsName, }?: {
        meshIndex?: number | string;
        primitiveIndex?: number;
        attPositionName?: string;
        attNormalName?: string;
        attTextureCoordsName?: string;
    }): TgdDataset;
}
//# sourceMappingURL=gltf.d.ts.map