export interface EnrollmentState { available:boolean; fresh?:boolean; node_id:string; name?:string; runtime_id?:string; mode?:string; model?:string; discovery_generation?:number; mode_revision?:number; candidates?:{id:string;name:string;rssi?:number}[]; networks?:{ssid:string;signal:number;security:string}[]; connected?:boolean; ready_to_start?:boolean; selected_device_id?:string; ip?:string; snapshot_revision?:number; runtime_started_at?:string; allowed_actions?:string[]; connection_attempt?:unknown; command_result?:{operation_id:string;action?:string;status:string;error_code?:string}; device_session?:{device_session_id:string;device_id:string}; observed_at?:string; } export interface EnrollmentCommand { operation_id:string; node_id:string; runtime_id:string; action:'scan'|'networks'|'connect'|'verify'; deadline_at:string; parameters:Record; } export interface EnrollmentOperation {operation_id?:string;state:string;error?:string;result?:EnrollmentState} export interface EnrollmentTransport { state:()=>Promise; submit:(command:EnrollmentCommand)=>Promise; operation:(id:string)=>Promise; }