import type { Body, Constraint, ContactMaterial, Material, Spring, TopDownVehicle } from 'p2-es';
import { World } from 'p2-es';
import type { KinematicCharacterController, PlatformController } from '../Controllers';
import type { SubscriptionName, SubscriptionTarget } from '../setup';
import type { WithUUID } from './types';
interface DecoratedWorld extends World {
bodies: WithUUID
[];
constraints: WithUUID[];
contactMaterials: WithUUID[];
}
export interface State {
bodies: {
[uuid: string]: Body;
};
bodiesNeedSyncing: boolean;
constraints: {
[uuid: string]: () => void;
};
controllers: {
[uuid: string]: {
controller: KinematicCharacterController | PlatformController;
};
};
materials: {
[uuid: string]: Material;
};
normal: [number, number, number];
normalIndex: number;
rays: {
[uuid: string]: () => void;
};
springInstances: {
[uuid: string]: Spring;
};
springs: {
[uuid: string]: () => void;
};
subscriptions: {
[id: string]: [uuid: string, type: SubscriptionName, target: SubscriptionTarget];
};
vehicles: {
[uuid: string]: {
vehicle: TopDownVehicle;
};
};
world: DecoratedWorld;
}
export declare const state: State;
export {};