import { TaskHook, MountHook } from './updater'; import CanvasPoint, { Emitter } from './point'; import { AssetOptions } from './assets'; import Field from './field'; export declare type ControlMode = 'keyboard' | 'mouse'; export interface PlayerOptions { assets?: AssetOptions; control?: ControlMode; state?: PlayerState; mounted?: MountHook; mutate?: TaskHook; } interface PlayerState { /** judge radius */ judgeRadius?: number; /** graze radius */ grazeRadius?: number; /** life count */ lifeCount?: number; /** bomb count */ bombCount?: number; /** high speed */ highSpeed?: number; /** low speed */ lowSpeed?: number; [key: string]: any; } export default class Player extends CanvasPoint implements PlayerState, Emitter { lifeCount: number; bombCount: number; highSpeed: number; lowSpeed: number; grazeRadius: number; $direction: number; $directionTick: number; /** @public the control of the player */ readonly control: ControlMode; /** @public parent field */ $parent: Field; /** @private listeners */ private _listeners; /** @private mouse position */ private _mouseState; /** @private keyboard state */ private _keyState; constructor(options?: PlayerOptions); _mounted(): void; private _listen; private _mutate; renderBelow(): void; renderAbove(): void; destory(): void; } export {};