import { ButtonProps, ComponentFunction, JoystickSettings } from 'canvasengine'; export type MobileGuiEnabled = "auto" | "always" | "never" | (() => boolean); export type MobileGuiJoystickSide = "left" | "right"; export type MobileGuiMargin = number | [number, number, number, number]; export interface MobileGuiLayoutOptions { joystickSide?: MobileGuiJoystickSide; margin?: MobileGuiMargin; buttonsMargin?: MobileGuiMargin; joystickMargin?: MobileGuiMargin; gap?: number; } export interface MobileJoystickComponentProps extends JoystickSettings { defaultProps: JoystickSettings; } export interface MobileButtonComponentProps extends ButtonProps { controlName: "action" | "back" | "dash" | "heavy"; defaultProps: ButtonProps; } export interface MobileGuiComponentsOptions { joystick?: ComponentFunction; buttons?: { action?: ComponentFunction; back?: ComponentFunction; dash?: ComponentFunction; heavy?: ComponentFunction; }; } export interface MobileGuiButtonOptions extends Partial { enabled?: boolean; component?: ComponentFunction; container?: Record; } export interface MobileGuiJoystickOptions extends Partial { component?: ComponentFunction; moveInterval?: number; threshold?: number; } export interface MobileGuiOptions { id?: string; enabled?: MobileGuiEnabled; layout?: MobileGuiLayoutOptions; components?: MobileGuiComponentsOptions; joystick?: false | MobileGuiJoystickOptions; buttons?: { action?: boolean | MobileGuiButtonOptions; back?: boolean | MobileGuiButtonOptions; dash?: boolean | MobileGuiButtonOptions; heavy?: boolean | MobileGuiButtonOptions; }; } export declare const withMobile: (options?: MobileGuiOptions) => { gui: { id: string; component: any; autoDisplay: boolean; data: MobileGuiOptions; dependencies: () => (import('canvasengine').WritableSignal | import('canvasengine').ComputedSignal)[]; }[]; };