import * as Native from './NativeTypes'; import { Pointer, UserPointer } from './NativeTypes'; export interface UmbraFunctions { configInit: (config: Pointer) => void; clientCreate: (appName: string, config: Pointer) => Pointer; clientDestroy: (client: Pointer) => void; getLibraryInfo: (field: Native.LibraryInfo) => string; environmentInfoDefaults: (environment: Pointer) => void; runtimeCreate: (client: Pointer, environment: Pointer, flags: number) => Pointer; runtimeUpdate: (runtime: Pointer) => void; runtimeGetStreamingState: (runtime: Pointer, streamingState: Pointer) => void; runtimeDestroy: (runtime: Pointer) => void; sceneCreate: (runtime: Pointer, apiKey: string, locator: string) => Pointer; sceneCreatePublic: (runtime: Pointer, publicLink: string) => Pointer; sceneCreateLocal: (runtime: Pointer, path: string) => Pointer; sceneGetConnectionStatus: (scene: Pointer) => Native.ConnectionStatus; sceneGetInfo: (scene: Pointer, info: Pointer) => boolean; sceneSetTransform: (scene: Pointer, transform: Pointer) => void; sceneDestroy: (scene: Pointer) => void; viewCreate: (runtime: Pointer) => Pointer; viewUpdateRendering: (view: Pointer, cameraWorldToClip: Pointer, cameraPosition: Pointer, cameraDepthRange: Native.DepthRange, cameraMatrixFormat: Native.MatrixFormat, quality: number, directionalLights: Pointer, numDirectionalLights: number) => void; viewUpdateFilter: (view: Pointer, filterShape: Pointer) => void; viewGetCompleted: (view: Pointer) => boolean; viewNextRenderables: (view: Pointer, renderables: Pointer, numRenderables: number) => number; viewResetRenderables: (view: Pointer) => void; viewDestroy: (view: Pointer) => void; viewRayQuery: (view: Pointer, rayOrigin: Pointer, rayDirection: Pointer, maxDistance: number, flags: number, result: Pointer) => boolean; sceneCopyCreate: (runtime: Pointer, destination: Pointer, source: Pointer, environment: Pointer, filter: Pointer) => Pointer; sceneCopyGetStatus: (sceneCopy: Pointer, progress: Pointer) => Native.SceneCopyStatus; sceneCopyGetError: (sceneCopy: Pointer) => string; sceneCopyDestroy: (sceneCopy: Pointer) => void; vertexAttributeGetElementByteSize: (vertexAttribute: Native.VertexAttribute) => number; runtimeNextAssetLoad: (runtime: Pointer) => Pointer; assetLoadGetType: (assetLoad: Pointer) => Native.AssetType; assetLoadPrepare: (assetLoad: Pointer, ptr: UserPointer) => void; assetLoadAbortRequested: (assetLoad: Pointer) => boolean; assetLoadFinish: (assetLoad: Pointer, result: Native.AssetLoadResult) => void; meshLoadFinishExternal: (assetLoad: Pointer, result: Native.AssetLoadResult, vertexBuffers: Pointer, indexBuffer: Pointer) => void; meshLoadGetInfo: (assetLoad: Pointer, meshInfo: Pointer) => void; meshLoadGetData: (assetLoad: Pointer, vertexBuffers: Pointer, indexBuffer: Pointer) => boolean; meshStreamSetBuffers: (assetLoad: Pointer, vertexBuffers: Pointer, indexBuffer: Pointer) => boolean; meshStreamNext: (assetLoad: Pointer, numVertices: Pointer, numIndices: Pointer) => boolean; meshStreamDone: (assetLoad: Pointer) => boolean; meshLoadGetSerializedSize: (assetLoad: Pointer) => number; textureGetMipmapLevelByteSize: (textureInfo: Pointer, level: number) => number; textureGetMipmapLevelOffset: (textureInfo: Pointer, level: number) => number; textureLoadGetInfo: (assetLoad: Pointer, textureInfo: Pointer) => void; textureLoadGetData: (assetLoad: Pointer, buffer: Pointer) => boolean; textureLoadGetSerializedSize: (assetLoad: Pointer) => number; textureMetaDataLoadGetData: (assetLoad: Pointer, buffer: Pointer) => boolean; textureMetaDataGetClassificationCount: (textureMetaData: Pointer, index: number) => number; textureMetaDataGetClassification: (textureMetaData: Pointer, index: number, numClassifications: number) => number; textureMetaDataGetClassificationAmount: (textureMetaData: Pointer, index: number, numClassifications: number) => number; materialLoadGetInfo: (assetLoad: Pointer, materialInfo: Pointer) => void; runtimeNextAssetUnload: (runtime: Pointer) => Pointer; assetUnloadGetType: (assetUnload: Pointer) => Native.AssetType; assetUnloadGetUserPointer: (assetUnload: Pointer) => UserPointer; assetUnloadFinish: (assetUnload: Pointer) => void; sendInternalMessage: (client: Pointer, message: Pointer) => boolean; } export declare function wrapNativeFunctions(Module: any): void;