import { SpringConfig } from '../hooks/useMultiSpringBasic'; export interface PhysicsBody { id: string; position: { x: number; y: number; }; velocity: { x: number; y: number; }; acceleration: { x: number; y: number; }; mass: number; radius: number; friction: number; restitution: number; fixed: boolean; forces: Array<{ x: number; y: number; duration?: number; }>; } export interface PhysicsWorld { bodies: Map; gravity: { x: number; y: number; }; bounds: { left: number; right: number; top: number; bottom: number; }; timeStep: number; substeps: number; } export interface CollisionInfo { bodyA: PhysicsBody; bodyB: PhysicsBody; normal: { x: number; y: number; }; penetration: number; contactPoint: { x: number; y: number; }; } export declare class GalileoPhysicsSystem { private world; private animationFrame; private lastTime; private paused; constructor(config?: Partial); addBody(body: PhysicsBody): void; removeBody(id: string): void; getBody(id: string): PhysicsBody | undefined; updateBody(id: string, updates: Partial): void; applyForce(id: string, force: { x: number; y: number; }, duration?: number): void; applyImpulse(id: string, impulse: { x: number; y: number; }): void; start(): void; stop(): void; pause(): void; resume(): void; private animate; private step; private updateForces; private integrateMotion; private handleCollisions; private checkCollision; private resolveCollision; private applyConstraints; setGravity(gravity: { x: number; y: number; }): void; setBounds(bounds: Partial): void; getAllBodies(): PhysicsBody[]; clear(): void; static createCircleBody(id: string, x: number, y: number, radius: number, mass?: number, options?: Partial): PhysicsBody; static createFixedBody(id: string, x: number, y: number, radius: number): PhysicsBody; } export declare function usePhysicsSystem(config?: Partial): GalileoPhysicsSystem | undefined; export declare class SpringPhysics { static calculateSpringForce(current: number, target: number, velocity: number, config: SpringConfig): { force: number; newVelocity: number; }; static interpolateSpring(from: number, to: number, progress: number, config: SpringConfig): number; } export declare const physicsUtils: { calculateTrajectory: (initialPosition: { x: number; y: number; }, initialVelocity: { x: number; y: number; }, gravity: { x: number; y: number; }, time: number) => { x: number; y: number; }; calculateCollisionPoint: (bodyA: PhysicsBody, bodyB: PhysicsBody) => { x: number; y: number; } | null; applyExplosion: (bodies: PhysicsBody[], center: { x: number; y: number; }, force: number, radius: number) => void; }; //# sourceMappingURL=galileoPhysicsSystem.d.ts.map