import { Quaternion, Vector3 } from "@galacean/engine-math";
import { Collider } from "./Collider";
import { ControllerNonWalkableMode } from "./enums/ControllerNonWalkableMode";
import { ColliderShape } from "./shape";
/**
 * The character controllers.
 */
export declare class CharacterController extends Collider {
    private _stepOffset;
    private _nonWalkableMode;
    private _upDirection;
    private _slopeLimit;
    /**
     * The step offset for the controller, the value must be greater than or equal to 0.
     * @remarks Character can overcome obstacle less than the height(stepOffset + contractOffset of the shape).
     */
    get stepOffset(): number;
    set stepOffset(value: number);
    /**
     * The value of the non-walkable mode.
     */
    get nonWalkableMode(): ControllerNonWalkableMode;
    set nonWalkableMode(value: ControllerNonWalkableMode);
    /**
     * The up direction for the controller.
     */
    get upDirection(): Vector3;
    set upDirection(value: Vector3);
    /**
     * The slope limit in degrees for the controller, the value is the cosine value of the maximum slope angle.
     * @defaultValue 45 degrees
     */
    get slopeLimit(): number;
    set slopeLimit(value: number);
    /**
     * Moves the character using a "collide-and-slide" algorithm.
     * @param disp - Displacement vector
     * @param minDist - The minimum travelled distance to consider.
     * @param elapsedTime - Time elapsed since last call
     * @return flags - The ControllerCollisionFlag
     */
    move(disp: Vector3, minDist: number, elapsedTime: number): number;
    /**
     * Add collider shape on this controller.
     * @param shape - Collider shape
     */
    addShape(shape: ColliderShape): void;
    protected _syncNative(): void;
    protected _teleportToEntityTransform(worldPosition: Vector3, _worldRotation: Quaternion): void;
    private _syncWorldPositionFromPhysicalSpace;
    private _setUpDirection;
}
