import { Context, ContextManager } from '@zcomponent/core'; import { IRigidBody } from '../components/IRigidBody'; import { PhysicsConstraint } from '../behaviors/constraints/PhysicsConstraint'; /** * This class is used to manage the loading of the Havok library and the components that depend on it. * * * Rigidbody will register itself to HavokLoadContext, and HavokLoadContext will be responsible for loading it. * * This context will also be responsible for loading the Havok library and * initializing havok context. * */ export declare class HavokLoadContext extends Context { private unreadyRigidBodies; private unreadyConstraints; private havokContext; private havok; private loaded; /** * every component must directly call into this. */ registerRigidBody(body: IRigidBody): void; registerConstraint(constraint: PhysicsConstraint): void; constructor(contextManager: ContextManager, props: {}); private loadHavok; private _onLoaded; private initializeRigidbodies; private initializeConstraints; /** * This method assumes that havok is loaded, * and isLoaded is true. */ initializeBody: (body: IRigidBody) => Promise; initializeConstraint: (constraint: PhysicsConstraint) => void; dispose(): never; } export declare function processPromisesBatch(items: Array, limit: number, fn: (item: any) => Promise): Promise;