/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */
import { TargetCamera as Camera, ICameraInput } from '../../loader/babylonjs-import';
import { CameraOptions } from '../ViewerCamera';
/**
 * Manage the keyboard inputs to control the movement of a TargetCamera.
 * @see http://doc.babylonjs.com/how_to/customizing_camera_inputs
 */
export declare class TwinfinityTargetCameraKeyboardInput<TCamera extends Camera> implements ICameraInput<TCamera> {
    private readonly _cameraOptions;
    constructor(_cameraOptions: CameraOptions);
    /**
     * Defines the camera the input is attached to.
     */
    camera: TCamera;
    /**
     * Gets or Set the list of keyboard keys used to control the forward move of the camera.
     */
    keysUp: number[];
    /**
     * Gets or Set the list of keyboard keys used to control the backward move of the camera.
     */
    keysDown: number[];
    /**
     * Gets or Set the list of keyboard keys used to control the left strafe move of the camera.
     */
    keysLeft: number[];
    /**
     * Gets or Set the list of keyboard keys used to control the right strafe move of the camera.
     */
    keysRight: number[];
    private _keys;
    private _onCanvasBlurObserver;
    private _onKeyboardObserver;
    private _transformedDirection;
    private _localDirection;
    /**
     * Attach the input controls.
     * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)
     */
    attachControl(noPreventDefault?: boolean): void;
    /**
     * Detach the current controls from the specified dom element.
     */
    detachControl(): void;
    /**
     * Update the current camera state depending on the inputs that have been used this frame.
     * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.
     */
    checkInputs(): void;
    /**
     * Gets the class name of the current intput.
     * @returns the class name
     */
    getClassName(): string;
    /** @hidden */
    _onLostFocus(): void;
    /**
     * Get the friendly name associated with the input class.
     * @returns the input friendly name
     */
    getSimpleName(): string;
}
//# sourceMappingURL=TwinfinityCameraKeyboardInput.d.ts.map