import { AuraPhysicsEngineAPI, PhysicsBodyState, PhysicsBodyOptions, CollisionEvent } from '../../physics/AuraPhysicsEngine';
import { Vector2D } from '../../types/common';
/**
 * Physics engine hook options
 */
export interface UsePhysicsEngineOptions {
    autoStart?: boolean;
    gravity?: Vector2D;
    timeScale?: number;
}
/**
 * Hook for managing a physics engine instance
 */
export declare const usePhysicsEngine: (options?: UsePhysicsEngineOptions) => {
    start: () => void;
    stop: () => void;
    forceUpdate: () => void;
    isRunning: boolean;
    createBody: (id: string, options?: PhysicsBodyOptions) => string;
    removeBody: (id: string) => void;
    getBodies: () => string[];
    clear: () => void;
    applyForce: (id: string, force: Vector2D) => void;
    applyImpulse: (id: string, impulse: Vector2D) => void;
    setVelocity: (id: string, velocity: Vector2D) => void;
    setPosition: (id: string, position: Vector2D) => void;
    getBodyState: (id: string) => PhysicsBodyState | null;
    setGravity: (newGravity: Vector2D) => void;
    setTimeScale: (scale: number) => void;
    onCollision: (id: string, callback: (event: CollisionEvent) => void) => (() => void);
    bodyStates: Map<string, PhysicsBodyState>;
    engine: AuraPhysicsEngineAPI | null;
};
//# sourceMappingURL=usePhysicsEngine.d.ts.map