export function b2GetPointStates(state1: any, state2: any, manifold1: any, manifold2: any): void;
export function b2TestOverlapAABB(a: any, b: any): boolean;
export function b2ClipSegmentToLine(vOut: any, vIn: any, normal: any, offset: any, vertexIndexA: any): number;
export function b2TestOverlapShape(shapeA: any, indexA: any, shapeB: any, indexB: any, xfA: any, xfB: any): boolean;
export const b2ContactFeatureType: any;
export class b2ContactFeature {
    _key: number;
    _key_invalid: boolean;
    _indexA: number;
    _indexB: number;
    _typeA: number;
    _typeB: number;
    set key(arg: number);
    get key(): number;
    set indexA(arg: number);
    get indexA(): number;
    set indexB(arg: number);
    get indexB(): number;
    set typeA(arg: number);
    get typeA(): number;
    set typeB(arg: number);
    get typeB(): number;
}
export class b2ContactID {
    cf: b2ContactFeature;
    Copy(o: any): b2ContactID;
    set key(arg: number);
    get key(): number;
    Clone(): b2ContactID;
}
export class b2ManifoldPoint {
    static MakeArray(length: any): b2ManifoldPoint[];
    localPoint: b2Vec2;
    normalImpulse: number;
    tangentImpulse: number;
    id: b2ContactID;
    Reset(): void;
    Copy(o: any): b2ManifoldPoint;
}
export const b2ManifoldType: any;
export class b2Manifold {
    points: b2ManifoldPoint[];
    localNormal: b2Vec2;
    localPoint: b2Vec2;
    type: any;
    pointCount: number;
    Reset(): void;
    Copy(o: any): b2Manifold;
    Clone(): b2Manifold;
}
export class b2WorldManifold {
    normal: b2Vec2;
    points: b2Vec2[];
    separations: number[];
    Initialize(manifold: any, xfA: any, radiusA: any, xfB: any, radiusB: any): void;
}
export namespace b2WorldManifold {
    const Initialize_s_pointA: b2Vec2;
    const Initialize_s_pointB: b2Vec2;
    const Initialize_s_cA: b2Vec2;
    const Initialize_s_cB: b2Vec2;
    const Initialize_s_planePoint: b2Vec2;
    const Initialize_s_clipPoint: b2Vec2;
}
export const b2PointState: any;
export class b2ClipVertex {
    static MakeArray(length: any): b2ClipVertex[];
    v: b2Vec2;
    id: b2ContactID;
    Copy(other: any): b2ClipVertex;
}
export class b2RayCastInput {
    p1: b2Vec2;
    p2: b2Vec2;
    maxFraction: number;
    Copy(o: any): b2RayCastInput;
}
export class b2RayCastOutput {
    normal: b2Vec2;
    fraction: number;
    Copy(o: any): b2RayCastOutput;
}
export class b2AABB {
    static Combine(aabb1: any, aabb2: any, out: any): any;
    lowerBound: b2Vec2;
    upperBound: b2Vec2;
    m_cache_center: b2Vec2;
    m_cache_extent: b2Vec2;
    Copy(o: any): b2AABB;
    IsValid(): boolean;
    GetCenter(): b2Vec2;
    GetExtents(): b2Vec2;
    GetPerimeter(): number;
    Combine1(aabb: any): b2AABB;
    Combine2(aabb1: any, aabb2: any): b2AABB;
    Contains(aabb: any): boolean;
    RayCast(output: any, input: any): boolean;
    TestContain(point: any): boolean;
    TestOverlap(other: any): boolean;
}
import { b2Vec2 } from "../common/b2_math.js";
