import { EmbodiedControlOptions } from "../embodied-control/EmbodiedControlTypes.js"; import "../embodied-control/index.js"; import { RemoteControlRequest, RemoteControlResponse, RemoteControlToolHandler, RemoteControlToolMetadata } from "./RemoteControlProtocol.js"; import { WebSocketRemoteControlTransport, WebSocketRemoteControlTransportOptions } from "./WebSocketRemoteControlTransport.js"; import * as THREE from "three"; import { Core, Input, Options, Script, Simulator } from "xrblocks"; //#region src/addons/remote-control/RemoteControl.d.ts export type RemoteControlOptions = WebSocketRemoteControlTransportOptions & { embodiedOptions?: EmbodiedControlOptions; tools?: Record; }; export declare class RemoteControl extends Script { private options; static dependencies: { core: typeof Core; input: typeof Input; camera: typeof THREE.Camera; }; editorIcon: string; transport?: WebSocketRemoteControlTransport; dependencies: { core: Core; simulator?: Simulator; input: Input; camera: THREE.Camera; }; private tools; private readonly embodiedControl; private simulatorReadyAnnounced; static configureOptions(options?: Options): Options & { enableAutomationMode: () => Options; }; constructor(options?: RemoteControlOptions); init(dependencies: { core: Core; input: Input; camera: THREE.Camera; }): void; dispose(): void; onSimulatorStarted(): void; registerTool(name: string, handler: RemoteControlToolHandler, metadata?: RemoteControlToolMetadata): void; unregisterTool(name: string): void; listTools(): { name: string; metadata: RemoteControlToolMetadata | undefined; }[]; handleRequest(request: RemoteControlRequest): Promise; private callTool; private registerBuiltInTools; private announceSimulatorReady; private resolveTarget; } //#endregion