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; } export { DpadController, type DpadDirection, type DpadOptions };