import EntityUpdater from "./entity-updater"; import { IGameUI } from "./canvas-ui/canvas-ui"; import EntityManager, { IEntityManager } from "./entity-manager"; import Entity from "./entities/entity"; import { BugState } from "./entities/bug/bug"; import { PlantState } from "./entities/plant/plant"; export interface GameEngineOptions { gameUI: IGameUI; entityManager: EntityManager; height: number; width: number; initialState?: string; } export interface Game { togglePause: () => void; isPaused: boolean; addPlant: (initialState?: Partial) => void; addBug: (initialState?: Partial | { size?: number; }) => void; getEntities: () => Entity[]; start: () => void; width: number; height: number; exportCurrentState: () => string; setSpeed: (speed: number) => void; } export declare class GameEngine implements Game { isPaused: boolean; height: number; width: number; entityManager: IEntityManager; gameUI: IGameUI; entityUpdater: EntityUpdater; frame: number; private plantFactory; private bugFactory; private updateHandle; constructor(args: GameEngineOptions); start(): void; addBug(initialState?: Partial & { size?: number; }): void; addPlant(initialState?: Partial): void; getEntities(): Entity[]; togglePause(): void; update: () => void; setSpeed(speed: number): void; createInitialGameState(initialState?: string): void; exportCurrentState(): string; }