import { EmitBulletsOptions } from './barrage'; import Coordinate, { Point } from './coordinate'; import Updater, { TaskHook, MountHook } from './updater'; declare type MaybeFunction = T | (() => T); export interface ImageTransform { scale?: number; rotate?: number; xOffset?: number; yOffset?: number; } export interface ImagePosition { xStart: number; yStart: number; xEnd: number; yEnd: number; } export interface PointOptions { state?: MaybeFunction>; mounted?: MountHook>; mutate?: TaskHook>; display?: string | TaskHook>; methods?: Record, ...args: any[]) => any>; } export interface Emitter extends CanvasPoint { /** * moving direction * - 0: static * - -1: leftward * - +1: rightward */ $direction?: number; /** number of ticks since change to current direction */ $directionTick?: number; } /** a general point in the canvas */ export default class CanvasPoint extends Updater { innerColor?: any; radiusX?: number; radiusY?: number; /** @protected point position */ protected _point: Point; /** @protected current coordinate */ protected _coordinate?: Coordinate; /** @protected mounted hook */ protected _mountedHook: MountHook[]; /** @protected mutate hook */ protected _mutateHook: TaskHook[]; /** @protected display hook */ protected _displayHook: TaskHook; /** @public judge radius */ judgeRadius?: number; /** @public the radius of the point */ radius?: number; /** @public the color of the point */ color?: any; /** @public number of ticks since change to current display */ $displayTick?: number; constructor(options?: PointOptions); x: number; y: number; face: number; readonly $player: import("./player").default; $display: string | TaskHook; drawTemplate(key: string): void; _mounted(): void; render(): void; readonly $coord: Coordinate; /** emit bullets from the barrage */ emitBullets(end: number, bullet: EmitBulletsOptions): void; emitBullets(start: number, end: number, bullet: EmitBulletsOptions): void; emitBullets(start: number, end: number, step: number, bullet: EmitBulletsOptions): void; /** draw image from image assets */ drawImage(id: string, transform?: ImageTransform, selector?: ImagePosition): void; fillCircle(fill?: any, radius?: number): void; fillEllipse(stroke?: any, fill?: any, radiusX?: number, radiusY?: number, rotation?: number): void; getGradient(c1: any, r1: number, c2?: any, r2?: number): CanvasGradient; bezierCurve(...coords: number[]): void; quadraticCurve(...coords: number[]): void; /** serialize to JSON */ protected toJSON(): Partial; } export {};