export interface VirtualJoystickConfig {
    readonly center: readonly [number, number];
    readonly radius: number;
    readonly deadZone?: number;
    readonly maxDistance?: number;
    readonly fixed?: boolean;
    readonly returnToCenter?: boolean;
}
export interface VirtualTouchPoint {
    readonly id: number;
    readonly x: number;
    readonly y: number;
}
export interface VirtualTouchJoystickSnapshot {
    readonly source: "origin-master-touch-joystick-virtual-input-adapted";
    readonly active: boolean;
    readonly activeTouchId: number | null;
    readonly center: readonly [number, number];
    readonly stick: readonly [number, number];
    readonly value: readonly [number, number];
    readonly magnitude: number;
    readonly deadZone: number;
    readonly consumedTouches: number;
    readonly evidence: {
        readonly oldCodebasePort: true;
        readonly virtualJoystick: boolean;
        readonly deadZone: boolean;
        readonly clampedMagnitude: boolean;
        readonly returnToCenter: boolean;
        readonly floatingCenter: boolean;
    };
}
export declare class VirtualTouchJoystick {
    private readonly initialCenter;
    private readonly radius;
    private readonly deadZone;
    private readonly maxDistance;
    private readonly fixed;
    private readonly returnToCenter;
    private centerRef;
    private stickRef;
    private valueRef;
    private activeTouchId;
    private active;
    private consumedTouches;
    constructor(config: VirtualJoystickConfig);
    touchStart(touch: VirtualTouchPoint): boolean;
    touchMove(touch: VirtualTouchPoint): boolean;
    touchEnd(touch: VirtualTouchPoint): boolean;
    snapshot(): VirtualTouchJoystickSnapshot;
    private updateStick;
}
export declare function sampleVirtualTouchJoystickFixture(): {
    readonly active: VirtualTouchJoystickSnapshot;
    readonly released: VirtualTouchJoystickSnapshot;
};
//# sourceMappingURL=VirtualTouchControls.d.ts.map