export function get_g_blockSolve(): boolean;
export function set_g_blockSolve(value: any): void;
export let g_blockSolve: boolean;
export class b2VelocityConstraintPoint {
    static MakeArray(length: any): b2VelocityConstraintPoint[];
    rA: b2Vec2;
    rB: b2Vec2;
    normalImpulse: number;
    tangentImpulse: number;
    normalMass: number;
    tangentMass: number;
    velocityBias: number;
}
export class b2ContactVelocityConstraint {
    static MakeArray(length: any): b2ContactVelocityConstraint[];
    points: b2VelocityConstraintPoint[];
    normal: b2Vec2;
    tangent: b2Vec2;
    normalMass: b2Mat22;
    K: b2Mat22;
    indexA: number;
    indexB: number;
    invMassA: number;
    invMassB: number;
    invIA: number;
    invIB: number;
    friction: number;
    restitution: number;
    threshold: number;
    tangentSpeed: number;
    pointCount: number;
    contactIndex: number;
}
export class b2ContactPositionConstraint {
    static MakeArray(length: any): b2ContactPositionConstraint[];
    localPoints: b2Vec2[];
    localNormal: b2Vec2;
    localPoint: b2Vec2;
    indexA: number;
    indexB: number;
    invMassA: number;
    invMassB: number;
    localCenterA: b2Vec2;
    localCenterB: b2Vec2;
    invIA: number;
    invIB: number;
    type: b2ManifoldType;
    radiusA: number;
    radiusB: number;
    pointCount: number;
}
export class b2ContactSolverDef {
    step: b2TimeStep;
    count: number;
}
export class b2PositionSolverManifold {
    normal: b2Vec2;
    point: b2Vec2;
    separation: number;
    Initialize(pc: any, xfA: any, xfB: any, index: any): void;
}
export namespace b2PositionSolverManifold {
    const Initialize_s_pointA: b2Vec2;
    const Initialize_s_pointB: b2Vec2;
    const Initialize_s_planePoint: b2Vec2;
    const Initialize_s_clipPoint: b2Vec2;
}
export class b2ContactSolver {
    m_step: b2TimeStep;
    m_positionConstraints: b2ContactPositionConstraint[];
    m_velocityConstraints: b2ContactVelocityConstraint[];
    m_count: number;
    Initialize(def: any): b2ContactSolver;
    m_positions: any;
    m_velocities: any;
    m_contacts: any;
    InitializeVelocityConstraints(): void;
    WarmStart(): void;
    SolveVelocityConstraints(): void;
    StoreImpulses(): void;
    SolvePositionConstraints(): boolean;
    SolveTOIPositionConstraints(toiIndexA: any, toiIndexB: any): boolean;
}
export namespace b2ContactSolver {
    const InitializeVelocityConstraints_s_xfA: b2Transform;
    const InitializeVelocityConstraints_s_xfB: b2Transform;
    const InitializeVelocityConstraints_s_worldManifold: b2WorldManifold;
    const WarmStart_s_P: b2Vec2;
    const SolveVelocityConstraints_s_dv: b2Vec2;
    const SolveVelocityConstraints_s_dv1: b2Vec2;
    const SolveVelocityConstraints_s_dv2: b2Vec2;
    const SolveVelocityConstraints_s_P: b2Vec2;
    const SolveVelocityConstraints_s_a: b2Vec2;
    const SolveVelocityConstraints_s_b: b2Vec2;
    const SolveVelocityConstraints_s_x: b2Vec2;
    const SolveVelocityConstraints_s_d: b2Vec2;
    const SolveVelocityConstraints_s_P1: b2Vec2;
    const SolveVelocityConstraints_s_P2: b2Vec2;
    const SolveVelocityConstraints_s_P1P2: b2Vec2;
    const SolvePositionConstraints_s_xfA: b2Transform;
    const SolvePositionConstraints_s_xfB: b2Transform;
    const SolvePositionConstraints_s_psm: b2PositionSolverManifold;
    const SolvePositionConstraints_s_rA: b2Vec2;
    const SolvePositionConstraints_s_rB: b2Vec2;
    const SolvePositionConstraints_s_P: b2Vec2;
    const SolveTOIPositionConstraints_s_xfA: b2Transform;
    const SolveTOIPositionConstraints_s_xfB: b2Transform;
    const SolveTOIPositionConstraints_s_psm: b2PositionSolverManifold;
    const SolveTOIPositionConstraints_s_rA: b2Vec2;
    const SolveTOIPositionConstraints_s_rB: b2Vec2;
    const SolveTOIPositionConstraints_s_P: b2Vec2;
}
import { b2Vec2 } from "../common/b2_math.js";
import { b2Mat22 } from "../common/b2_math.js";
import { b2ManifoldType } from "../collision/b2_collision.js";
import { b2TimeStep } from "./b2_time_step.js";
import { b2Transform } from "../common/b2_math.js";
import { b2WorldManifold } from "../collision/b2_collision.js";
