///
///
///
///
///
///
///
///
declare namespace cp {
export class Space {
stamp: number;
dtCurr: number;
bodies: Body[];
rousedBodies: Body[];
sleepingComponents: Body[];
spatialIndex: SpatialIndex;
arbiters: Arbiter[];
cachedArbiters: Map;
constraints: Constraint[];
locked: number;
collisionHandlers: Map;
defaultHandler: CollisionHandler;
postStepCallbacks: Array<() => any>;
iterations: number;
gravity: Vect;
damping: number;
idleSpeedThreshold: number;
sleepTimeThreshold: number;
collisionSlop: number;
collisionBias: number;
collisionPersistence: number;
enableContactGraph: boolean;
staticBody: Body;
collideShapes: (a: Shape, b: Shape) => void;
constructor();
getCurrentTimeStep(): number;
setIterations(iter: number): void;
isLocked(): boolean;
addCollisionHandler(a: number, b: number, begin: (arg: Arbiter, space: Space) => any, preSolve: (arg: Arbiter, space: Space) => any, postSolve: (arg: Arbiter, space: Space) => any, separate: (arg: Arbiter, space: Space) => any): void;
removeCollisionHandler(a: number, b: number): void;
setDefaultCollisionHandler(begin: (arg: Arbiter, space: Space) => any, preSolve: (arg: Arbiter, space: Space) => any, postSolve: (arg: Arbiter, space: Space) => any, separate: (arg: Arbiter, space: Space) => any): void;
lookupHandler(a: number, b: number): CollisionHandler;
addShape(shape: Shape): Shape;
addStaticShape(shape: Shape): Shape;
addBody(body: Body): Body;
addConstraint(constraint: Constraint): Constraint;
filterArbiters(body: Body, filter: Shape): void;
removeShape(shape: Shape): void;
removeStaticShape(shape: Shape): void;
removeBody(body: Body): void;
removeConstraint(constraint: Constraint): void;
containsShape(shape: Shape): boolean;
containsBody(body: Body): boolean;
containsConstraint(constraint: Constraint): boolean;
uncacheArbiter(arb: Arbiter): void;
eachBody(func: (body: Body) => any): void;
eachShape(func: (shape: Shape) => any): void;
eachConstraint(func: (constraint: Constraint) => any): void;
reindexStatic(): void;
reindexShape(shape: Shape): void;
reindexShapesForBody(body: Body): void;
activateBody(body: Body): void;
deactivateBody(body: Body): void;
processComponents(dt: number): void;
activateShapesTouchingShape(shape: Shape): void;
pointQuery(point: Vect, layers: number, group: number, func: (shape: Shape) => any): void;
pointQueryFirst(point: Vect, layers: number, group: number): Shape;
nearestPointQuery(point: Vect, maxDistance: number, layers: number, group: number, func: (shape: Shape, d: number, p: Vect) => any): void;
nearestPointQueryNearest(point: Vect, maxDistance: number, layers: number, group: number): NearestPointQueryInfo;
segmentQuery(start: Vect, end: Vect, layers: number, group: number, func: (shape: Shape, t: number, n: Vect) => any): void;
segmentQueryFirst(start: Vect, end: Vect, layers: number, group: number): SegmentQueryInfo;
bbQuery(bb: BB, layers: number, group: number, func: (shape: Shape) => any): void;
shapeQuery(shape: Shape, func: (shape: Shape, contacts: Contact[]) => any): boolean;
addPostStepCallback(func: () => any): void;
runPostStepCallbacks(): void;
lock(): void;
unlock(runPostStep: boolean): void;
makeCollideShapes(): (a: Shape, b: Shape) => void;
arbiterSetFilter(arb: Arbiter): boolean;
step(dt: number): void;
}
}