/// import { type stats } from './../stats.js'; import { type Vector2D } from 'visibility-polygon'; import { type Body, type Response, SATVector } from 'detect-collisions'; import type { ITickData } from '../types.js'; import { AsyncEE } from '../util/AsyncEE.js'; import type Effect from '../effect/Effect.js'; import type World from '../world/World.js'; export default abstract class Entity { id: string; name: string; markAsRemove: boolean; elapsedTick: number; effects: Map; event: AsyncEE; vel: SATVector; visibility: Vector2D[]; abstract body: Body; abstract stats: typeof stats[keyof typeof stats]; abstract _stats: typeof stats[keyof typeof stats]; beforeUpdate(world: World, tickData: ITickData): void; afterUpdate(world: World, tickData: ITickData): void; destroy(): void; update(world: World, tickData: ITickData): void; onAdd(world: World): void; onRemove(world: World): void; onCollisionEnter(other: Entity, response: Response): void; onCollisionStay(other: Entity, response: Response): void; onCollisionExit(other: Entity, response: Response): void; init(data: Record): void; assign(initData: Record): void; addEffect(id: string, effect: Effect): void; removeEffect(id: string): void; } //# sourceMappingURL=Entity.d.ts.map