import * as UmbraMath from './Math'; import { TextureFormat, TextureType, ColorSpace } from './NativeEnums'; export * from './NativeEnums'; export declare type UserPointer = number; export declare type Pointer = number; export interface ByteBuffer { ptr: Pointer; byteSize: number; flags: number; } export interface ElementBuffer { ptr: Pointer; elementCapacity: number; elementByteSize: number; elementStride: number; flags: number; } export interface MaterialInfo { transparent: boolean; textures: (UserPointer | undefined)[]; } export interface MeshInfo { bounds: { mn: UmbraMath.Vector3; mx: UmbraMath.Vector3; }; material: UserPointer; numUniqueVertices: number; numIndices: number; attributes: number; } export interface TextureInfo { width: number; height: number; format: TextureFormat; colorSpace: ColorSpace; numMipLevels: number; mipByteSizes: number[]; mipByteOffsets: number[]; dataByteSize: number; type: TextureType; metaDataByteSize: number; } export interface SceneInfo { bounds: { mn: UmbraMath.Vector3; mx: UmbraMath.Vector3; }; numLodLevels: number; unitsToMeters: number; ecefToLocal: UmbraMath.Matrix4x4; localToEcef: UmbraMath.Matrix4x4; } export interface EnvironmentInfo { textureSupportFlags: number; localCacheDirectory: string; localCacheMaximumByteSize: number; } export interface StreamingState { numResourceLoadsActive: number; numResourceLoadsPending: number; numResidentTiles: number; numResidentTilesLoaded: number; numAssetLoadsPending: number; } export interface TranscodeResult { texture: { width: number; height: number; format: TextureFormat; dataByteSize: number; data: Pointer; }; success: boolean; }