interface ButtonControllerOptions { uid?: string; container?: HTMLElement | null; top?: string; left?: string; width: string; height: string; color?: string; shadow?: string; rotation?: number; radius?: number; svg?: string; verboseLogging?: boolean; onPressCallback?: () => void; onReleaseCallback?: () => void; } declare class ButtonController { uid: string; container: HTMLElement; top: string; left: string; width: string; height: string; color: string; shadow: string; rotation: number; radius: number; svg: SVGElement | null; verboseLogging: boolean; onPressCallback?: () => void; onReleaseCallback?: () => void; base: HTMLDivElement; isPressed: boolean; constructor(options: ButtonControllerOptions); log(message: string): void; init(): void; render(): void; onButtonUp(): void; onButtonDown(): void; } type DpadDirection = "center" | "up" | "down" | "left" | "right" | "up-right" | "down-right" | "up-left" | "down-left"; interface DpadOptions { uid?: string; container?: HTMLElement | null; top?: string; left?: string; radius?: number; colorBase?: string; colorsPressed?: string; centerRadiusThreshold?: number; onPressCallback?: (direction: DpadDirection | string) => void; onReleaseCallback?: (direction: DpadDirection | string) => void; verboseLogging?: boolean; keyRepeat?: boolean; rotation?: number; } declare class DpadController { uid: string; container: HTMLElement; top: string; left: string; radius: number; colorBase: string; colorPressed: string; centerThreshold?: number; onPressCallback?: (direction: DpadDirection) => void; onReleaseCallback?: (direction: DpadDirection) => void; verboseLogging: boolean; base: SVGElement; currentDirection: DpadDirection; basePaths: { [key: string]: SVGPathElement; }; pointerId: number; baseRect: DOMRect | undefined; inputRegisterDistance: number; isPressed: boolean; keyRepeat?: boolean; rotation: number; constructor(options: DpadOptions); log(message: string): void; init(): void; render(): void; updateContainerRectangle(): void; updateDpadUI(): void; resetDpad(): void; onDpadUp(_: PointerEvent | TouchEvent): void; onDpadDown(e: PointerEvent | TouchEvent): void; onDpadMove(e: PointerEvent): void; } interface JoystickControllerOptions { uid?: string; container?: HTMLElement | null; top?: string; left?: string; rotation?: number; radius?: number; color?: string; thumbColor?: string; onInputCallback?: (x: number, y: number) => void; onReleaseCallback?: () => void; verboseLogging?: boolean; } declare class JoystickController { uid: string; container: HTMLElement; top: string; left: string; rotation: number; radius: number; color: string; thumbColor: string; onInputCallback: (x: number, y: number) => void; onReleaseCallback: (x: number, y: number) => void; isPressed: boolean; verboseLogging: boolean; base: HTMLDivElement; baseThumb: HTMLDivElement; baseRect: DOMRect | undefined; thumbMaxDistance: number; constructor(options: JoystickControllerOptions); log(message: string): void; init(): void; render(): void; updateContainerRectangle(): void; onJoysickUp(e: PointerEvent): void; onJoysickDown(e: PointerEvent): void; onJoysickMove(e: PointerEvent): void; } type SliderOrientation = "vertical" | "horizontal"; interface RetrackableSliderOptions { uid?: string; container?: HTMLElement | null; top?: string; left?: string; width?: string; height?: string; color?: string; borderColor?: string; borderWidth?: string; borderRadius?: string; orientation?: SliderOrientation; onSlideCallback?: (value: number) => void; onReleaseCallback?: () => void; verboseLogging?: boolean; } declare class RetrackableSlider { uid: string; container: HTMLElement; top: string; left: string; width: string; height: string; color: string; borderColor: string; borderWidth: string; borderRadius: string; orientation: string; onSlideCallback?: (value: number) => void; onReleaseCallback?: () => void; verboseLogging: boolean; base: HTMLDivElement; baseSlider: HTMLDivElement; baseRect: DOMRect | undefined; isPressed: boolean; valuePercent: number; constructor(options: RetrackableSliderOptions); log(message: string): void; init(): void; updateUI(): void; updateContainerRectangle(): void; onSliderUp(e: PointerEvent): void; onSliderDown(e: PointerEvent): void; onSliderMove(e: PointerEvent): void; setSliderValue(e: PointerEvent): void; } export { ButtonController, type ButtonControllerOptions, DpadController, type DpadDirection, type DpadOptions, JoystickController, type JoystickControllerOptions, RetrackableSlider, type RetrackableSliderOptions, type SliderOrientation };