import { Entity } from './entity'; import { Level } from './level/level'; import { ObjectLayer } from './level/objectLayer'; import { EntitySettings, TiledMapType, Vector2 } from './types'; export declare abstract class Impacter { DRAW: { AUTHENTIC: (p: number) => number; SMOOTH: (p: number) => number; SUBPIXEL: (p: number) => number; }; drawMode: (p: number) => number; ctx: CanvasRenderingContext2D; scale: number; ready: boolean; level: Level; screen: Vector2; rscreen: Vector2; clearColor: string; delta: number; getDrawPos: (p: number) => number; width: number; height: number; realWidth: number; realHeight: number; canvas: HTMLCanvasElement; startTime: number; private lastFrameTime; private impacterStarted; constructor(); abstract start(): void; clear(color: string): void; loadLevel(rawData: TiledMapType): Promise; /** * Instantiates an entity, or fetches an existing one from the pool, * and adds it to the current level * * @param {typeof Entity} entityClass The Entity subclass * @param {EntitySettings} [settings] A dynamic object based on Tiled object settings * @param {ObjectLayer} [layer] The layer on which the entity will be added * @returns {Entity} */ spawnEntity(entityClass: typeof Entity, settings: EntitySettings, layer?: ObjectLayer): Entity; removeEntity(entity: Entity): void; resize(width: number, height: number, scale?: number): void; run(): void; protected update(delta: number): void; protected draw(): void; private _draw; private drawEntitiesWithoutLayer; private _update; }