export function b2_gjk_reset(): void;
export function b2Distance(output: any, cache: any, input: any): void;
export function b2ShapeCast(output: any, input: any): boolean;
export class b2DistanceProxy {
    m_buffer: b2Vec2[];
    m_vertices: b2Vec2[];
    m_count: number;
    m_radius: number;
    Copy(other: any): b2DistanceProxy;
    Reset(): b2DistanceProxy;
    SetShape(shape: any, index: any): void;
    SetVerticesRadius(vertices: any, count: any, radius: any): void;
    GetSupport(d: any): number;
    GetSupportVertex(d: any): b2Vec2;
    GetVertexCount(): number;
    GetVertex(index: any): b2Vec2;
}
export class b2SimplexCache {
    metric: number;
    count: number;
    indexA: number[];
    indexB: number[];
    Reset(): b2SimplexCache;
}
export class b2DistanceInput {
    proxyA: b2DistanceProxy;
    proxyB: b2DistanceProxy;
    transformA: b2Transform;
    transformB: b2Transform;
    useRadii: boolean;
    Reset(): b2DistanceInput;
}
export class b2DistanceOutput {
    pointA: b2Vec2;
    pointB: b2Vec2;
    distance: number;
    iterations: number;
    Reset(): b2DistanceOutput;
}
export class b2ShapeCastInput {
    proxyA: b2DistanceProxy;
    proxyB: b2DistanceProxy;
    transformA: b2Transform;
    transformB: b2Transform;
    translationB: b2Vec2;
}
export class b2ShapeCastOutput {
    point: b2Vec2;
    normal: b2Vec2;
    lambda: number;
    iterations: number;
}
export let b2_gjkCalls: number;
export let b2_gjkIters: number;
export let b2_gjkMaxIters: number;
export class b2SimplexVertex {
    wA: b2Vec2;
    wB: b2Vec2;
    w: b2Vec2;
    a: number;
    indexA: number;
    indexB: number;
    Copy(other: any): b2SimplexVertex;
}
export class b2Simplex {
    m_v1: b2SimplexVertex;
    m_v2: b2SimplexVertex;
    m_v3: b2SimplexVertex;
    m_vertices: b2SimplexVertex[];
    m_count: number;
    ReadCache(cache: any, proxyA: any, transformA: any, proxyB: any, transformB: any): void;
    WriteCache(cache: any): void;
    GetSearchDirection(out: any): any;
    GetClosestPoint(out: any): any;
    GetWitnessPoints(pA: any, pB: any): void;
    GetMetric(): number;
    Solve2(): void;
    Solve3(): void;
}
export namespace b2Simplex {
    const s_e12: b2Vec2;
    const s_e13: b2Vec2;
    const s_e23: b2Vec2;
}
import { b2Vec2 } from "../common/b2_math.js";
import { b2Transform } from "../common/b2_math.js";
