{
  "protocol": "rekeyUI",
  "imports": [],
  "types": [
    {
      "type": "enum",
      "name": "RekeyEventType",
      "symbols": [
        "NONE_0",
        "NOT_LOGGED_IN_1",
        "API_ERROR_2",
        "NO_PROBLEMS_3",
        "LOAD_ME_ERROR_4",
        "CURRENT_DEVICE_CAN_REKEY_5",
        "DEVICE_LOAD_ERROR_6",
        "HARASS_7",
        "NO_GREGOR_MESSAGES_8"
      ]
    },
    {
      "type": "record",
      "name": "RekeyEvent",
      "fields": [
        {
          "type": "RekeyEventType",
          "name": "eventType"
        },
        {
          "type": "int",
          "name": "interruptType"
        }
      ]
    }
  ],
  "messages": {
    "delegateRekeyUI": {
      "request": [],
      "response": "int"
    },
    "refresh": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "problemSetDevices",
          "type": "ProblemSetDevices"
        }
      ],
      "response": null,
      "doc": "Refresh is called whenever Electron should refresh the UI, either\n   because a change came in, or because there was a timeout poll."
    },
    "rekeySendEvent": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "event",
          "type": "RekeyEvent"
        }
      ],
      "response": null,
      "oneway": true,
      "doc": "RekeySendEvent sends updates as to what's going on in the rekey\n   thread. This is mainly useful in testing."
    }
  },
  "namespace": "keybase.1"
}