import { Object3D } from 'three';
import { Vector3 } from 'three';
import { Line3 } from 'three';
import { MeshWithBVH } from '../../core/geometry/bvh/three-mesh-bvh';
import { CapsuleOptions } from './CapsuleGeometry';
export interface CorePlayerOptions {
    object: Object3D;
    collider: MeshWithBVH;
}
type ResetRequiredCallback = () => boolean;
export declare class CorePlayer {
    private _pressed;
    private _onGround;
    private _velocity;
    readonly capsuleInfo: {
        radius: number;
        segment: Line3;
    };
    object: Object3D;
    collider: MeshWithBVH;
    startPosition: Vector3;
    startRotation: Vector3;
    jumpAllowed: boolean;
    jumpStrength: number;
    runAllowed: boolean;
    runSpeedMult: number;
    private _running;
    speed: number;
    physicsSteps: number;
    gravity: Vector3;
    private _azimuthalAngle;
    private _resetYMax;
    private _resetRequiredCallback;
    constructor(options: CorePlayerOptions);
    setOptions(options: CorePlayerOptions): void;
    private _setObject;
    setCollider(collider: MeshWithBVH): void;
    setCapsule(capsuleOptions: CapsuleOptions): void;
    reset(): void;
    stop(): void;
    setResetRequiredCallback(callback: ResetRequiredCallback): void;
    setAzimuthalAngle(angle: number): void;
    update(delta: number): void;
    private _updateStep;
    setForward(state: boolean): void;
    setBackward(state: boolean): void;
    setLeft(state: boolean): void;
    setRight(state: boolean): void;
    jump(): void;
    setRun(state: boolean): void;
    running(): boolean;
}
export {};
