import type { RaftSystemInfo } from "@robdobsn/raftjs"; export declare enum RaftConnectionMethod { WEB_SOCKET = "WebSocket", WEB_BLE = "WebBLE", PHONE_BLE = "PhoneBLE" } export type ConnectableRaftType = RaftTypeE.MARTY | RaftTypeE.COG; /** * Optional connection controls for host integrations such as MartyBlocks and * Blocks Jr. Omitting `method` uses Marty's connection method selected in App * Settings for Marty, while Cog always defaults to Bluetooth. */ export type RaftConnectOptions = { method?: RaftConnectionMethod; locator?: string; expectedRaftType?: ConnectableRaftType; }; /** * Shared browser/native bridge contract for a direct RAFT connection. * * WebSocket locators are complete ws:// or wss:// URLs. Bluetooth connections * use an empty locator because their platform chooser/discovery owns selection. */ export type RaftConnectRequest = { method: RaftConnectionMethod; locator: string; uuids: string[]; expectedRaftType?: ConnectableRaftType; }; export type ConnectionAttemptResults = { success: boolean; reason: 'failed' | 'unplugged' | 'success' | 'no_sys_info' | 'invalid_raft_type'; data?: { raftId: string; raftType: RaftTypeE; systemInfo?: RaftSystemInfo; }; }; export declare enum RaftTypeE { MARTY = "Marty", COG = "Cog", undefined = "undefined" }