import { ASArray, ASClass } from '@awayfl/avm2';
import { b2AABB } from '../Collision/b2AABB';
import { b2Vec2, b2XForm } from '../Common/Math';
import { b2ContactFilter } from './b2ContactFilter';
import { b2BodyDef } from './b2BodyDef';
import { b2BroadPhase } from '../Collision/b2BroadPhase';
import { b2DestructionListener } from './b2DestructionListener';
import { b2BoundaryListener } from './b2BoundaryListener';
import { b2ContactListener } from './b2ContactListener';
import { b2DebugDraw } from './b2DebugDraw';
import { b2Body } from './b2Body';
import { b2Shape } from '../Collision/Shapes/b2Shape';
import { b2JointDef } from './Joints';
import { b2Joint } from './Joints';
import { b2TimeStep } from './b2TimeStep';
import { b2Contact } from './Contacts/b2Contact';
import { b2Color } from '../Common/b2Color';
import { b2ContactManager } from './b2ContactManager';
import { b2ShapeDef } from '../Collision/Shapes/b2ShapeDef';
export declare class b2World {
    readonly __fast__ = true;
    constructor(worldAABB: b2AABB, gravity: b2Vec2, doSleep: boolean);
    SetDestructionListener(listener: b2DestructionListener): void;
    SetBoundaryListener(listener: b2BoundaryListener): void;
    SetContactFilter(filter: b2ContactFilter): void;
    SetContactListener(listener: b2ContactListener | ASClass | null): void;
    SetDebugDraw(debugDraw: b2DebugDraw): void;
    Validate(): void;
    GetProxyCount(): number /** int */;
    GetPairCount(): number /** int */;
    CreateBody(def: b2BodyDef): b2Body;
    DestroyBody(b: b2Body): void;
    CreateJoint(def: b2JointDef): b2Joint;
    DestroyJoint(j: b2Joint): void;
    CreateGroundShape(def: b2ShapeDef): any;
    Refilter(shape: b2Shape): void;
    SetWarmStarting(flag: boolean): void;
    SetPositionCorrection(flag: boolean): void;
    SetContinuousPhysics(flag: boolean): void;
    GetBodyCount(): number /** int */;
    GetJointCount(): number /** int */;
    GetContactCount(): number /** int */;
    SetGravity(gravity: b2Vec2): void;
    GetGroundBody(): b2Body;
    Step(dt: number, iterations: number /** int */): void;
    Query(aabb: b2AABB, shapes: any[] | ASArray, maxCount: number /** int */): number /** int */;
    GetBodyList(): b2Body;
    GetJointList(): b2Joint;
    Solve(step: b2TimeStep): void;
    SolveTOI(step: b2TimeStep): void;
    private static s_jointColor;
    DrawJoint(joint: b2Joint): void;
    private static s_coreColor;
    DrawShape(shape: b2Shape, xf: b2XForm, color: b2Color, core: boolean): void;
    private static s_xf;
    DrawDebugData(): void;
    m_blockAllocator: any;
    m_stackAllocator: any;
    m_lock: boolean;
    m_broadPhase: b2BroadPhase;
    m_contactManager: b2ContactManager;
    m_bodyList: b2Body;
    m_jointList: b2Joint;
    m_contactList: b2Contact;
    m_bodyCount: number /** int */;
    m_contactCount: number /** int */;
    m_jointCount: number /** int */;
    m_gravity: b2Vec2;
    m_allowSleep: boolean;
    m_groundBody: b2Body;
    m_destructionListener: b2DestructionListener;
    m_boundaryListener: b2BoundaryListener;
    m_contactFilter: b2ContactFilter;
    m_contactListener: b2ContactListener;
    m_debugDraw: b2DebugDraw;
    m_inv_dt0: number;
    m_positionIterationCount: number /** int */;
    static m_positionCorrection: boolean;
    static m_warmStarting: boolean;
    static m_continuousPhysics: boolean;
}
//# sourceMappingURL=b2World.d.ts.map