import { Ray, RaycastResult } from 'p2-es'; import type { KinematicCharacterControllerOptns } from './KinematicCharacterController'; import RaycastController from './RaycastController'; import type { Duplet } from './'; export default class Controller extends RaycastController { maxClimbAngle: number; maxDescendAngle: number; collisions: { above: boolean; below: boolean; left: boolean; right: boolean; climbingSlope: boolean; descendingSlope: boolean; slopeAngle: number; slopeAngleOld: number; velocityOld: Duplet; faceDir: number; fallingThroughPlatform: boolean; }; ray: Ray; raycastResult: RaycastResult; raysData: [from: Duplet, to: Duplet, hitPoint: [number, number]][]; constructor({ world, body, collisionMask, skinWidth, dstBetweenRays, maxClimbAngle, maxDescendAngle }: Pick); resetCollisions(velocity: Duplet): void; moveWithZeroInput(velocity: Duplet, standingOnPlatform: boolean): void; move(velocity: Duplet, input: Duplet, standingOnPlatform?: boolean): void; horizontalCollisions(velocity: Duplet): void; verticalCollisions(velocity: Duplet): void; climbSlope(velocity: Duplet, slopeAngle: number): void; descendSlope(velocity: Duplet): void; resetFallingThroughPlatform(): void; emitRayCastEvent(): void; }