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