export const b2StretchingModel: any;
export const b2BendingModel: any;
export class b2RopeTuning {
    stretchingModel: any;
    bendingModel: any;
    damping: number;
    stretchStiffness: number;
    stretchHertz: number;
    stretchDamping: number;
    bendStiffness: number;
    bendHertz: number;
    bendDamping: number;
    isometric: boolean;
    fixedEffectiveMass: boolean;
    warmStart: boolean;
    Copy(other: any): b2RopeTuning;
}
export class b2RopeDef {
    position: b2Vec2;
    vertices: any[];
    count: number;
    masses: any[];
    gravity: b2Vec2;
    tuning: b2RopeTuning;
}
export class b2Rope {
    m_position: b2Vec2;
    m_count: number;
    m_stretchCount: number;
    m_bendCount: number;
    m_stretchConstraints: any[];
    m_bendConstraints: any[];
    m_bindPositions: any[];
    m_ps: any[];
    m_p0s: any[];
    m_vs: any[];
    m_invMasses: any[];
    m_gravity: b2Vec2;
    m_tuning: b2RopeTuning;
    Create(def: any): void;
    SetTuning(tuning: any): void;
    Step(dt: any, iterations: any, position: any): void;
    Reset(position: any): void;
    Draw(draw: any): void;
    SolveStretch_PBD(): void;
    SolveStretch_XPBD(dt: any): void;
    SolveBend_PBD_Angle(): void;
    SolveBend_XPBD_Angle(dt: any): void;
    SolveBend_PBD_Distance(): void;
    SolveBend_PBD_Height(): void;
    SolveBend_PBD_Triangle(): void;
    ApplyBendForces(dt: any): void;
}
import { b2Vec2 } from "../common/b2_math.js";
