/** * Robot ID / API token for AgenticROS cloud (cloud.agenticros.com). * * Lives in the CLI package (with a direct `configstore` dependency) so * `agenticros id` / `set` / `connect` / `login` / `register` work from the * published npm binary without needing packages/agenticros-robot/node_modules. * * Primary store: configstore('agenticros'). * Legacy: if keys are missing, copy once from configstore('robotics'). */ export declare const CLOUD_REST = "https://cloud.agenticros.com"; export declare const CLOUD_WSS = "wss://cloud.agenticros.com"; export declare function getRobotId(): string | undefined; export declare function getApiToken(): string | undefined; export declare function setRobotId(id: string): string; export declare function setApiToken(token: string): string; /** Clear API_TOKEN; keeps ROBOT_ID. */ export declare function clearApiToken(): void; /** Create a new robot id via the cloud portal when none is stored. */ export declare function ensureRobotId(): Promise; /** Fetch portal robot details (camera model, compute) when token+id are set. */ export declare function fetchRobotDetails(): Promise<{ camera?: string; compute?: string; name?: string; }>; export interface DeviceCodeResponse { device_code: string; user_code: string; verification_uri: string; verification_uri_complete: string; expires_in: number; interval: number; } export declare function requestDeviceCode(): Promise; export type DeviceTokenPollResult = { status: "ready"; apiToken: string; } | { status: "pending"; } | { status: "slow_down"; interval?: number; } | { status: "denied"; } | { status: "expired"; } | { status: "error"; message: string; }; export declare function pollDeviceToken(deviceCode: string): Promise; export interface CloudMe { uid: string; email?: string | null; displayName?: string | null; githubLogin?: string | null; paidTier?: number; robotCount?: number; maxRobots?: number; } export interface CloudOrg { id: string; name?: string; hiveEnabled?: boolean; } export declare function fetchCurrentOrg(): Promise; export declare function fetchMe(): Promise; /** True when local ROBOT_ID is registered to the current account on ARC. */ export declare function isCloudRobotRegistered(): Promise; export interface CreateCloudRobotFields { id: string; name: string; camera: string; compute: string; type?: string; wheelCount?: number; wheelDiameter?: number; wheelWidth?: number; wheelBetween?: number; cmdVel?: string; rosNamespace?: boolean; rosTopics?: Array<{ type: string; topic: string; }>; } export declare function createCloudRobot(fields: CreateCloudRobotFields): Promise<{ id: string; [key: string]: unknown; }>; export declare function maskToken(token: string): string; /** Preset remote CLI actions accepted by POST /robot/:id/cli */ export declare const REMOTE_CLI_ACTIONS: readonly ["start_motors", "stop_motors", "start_realsense", "stop_realsense", "start_camera", "stop_camera", "status", "skills_list", "skills_sync", "skills_remove", "gateway_restart"]; export type RemoteCliAction = (typeof REMOTE_CLI_ACTIONS)[number]; /** Strict skill id for remote skills_remove (no paths / URLs). */ export declare const REMOTE_SKILL_ID_RE: RegExp; export declare function isRemoteCliAction(value: string): value is RemoteCliAction; export interface RemoteCliParams { /** Required for skills_remove. */ skillId?: string; } /** List robot IDs registered to the current ARC account (`GET /myrobots`). */ export declare function listMyRobots(): Promise; export interface RobotPresence { online: boolean; socketId?: string | null; lastSeen?: string | null; } /** Live presence for a robot (`GET /presence/:id`). */ export declare function fetchRobotPresence(robotId: string): Promise; export interface RemoteCliResult { action: string; command?: string; stdout: string; stderr: string; exitCode: number; error?: string; /** Parsed JSON from stdout when the command printed JSON (e.g. status --json). */ result?: unknown; } /** * Run a preset CLI action on a remote online robot via * `POST /robot/:id/cli` → `{ action, params? }`. */ export declare function runRemoteCli(robotId: string, action: RemoteCliAction, params?: RemoteCliParams): Promise; //# sourceMappingURL=robot-cloud-config.d.ts.map