@namespace("keybase.1")

/*
 * TODO: move 'favorite' protocol functions inside 'kbfs' protocol.
 */

protocol kbfs {

  import idl "kbfs_common.avdl";

  /**
    Idea is that kbfs would call the function below whenever these actions are
    performed on a file.

    Note that this list/interface is very temporary and highly likely to change
    significantly.

    It is just a starting point to get kbfs notifications through the daemon to
    the clients.
        */
  @lint("ignore")
  void FSEvent(FSNotification event);

  /**
    kbfs calls this as a response to receiving an FSEditListRequest with a
    given requestID.
        */
  @lint("ignore")
  void FSEditList(array<FSNotification> edits, int requestID);

  /**
    FSSyncStatus is called by KBFS as a response to receiving an
    FSSyncStatusRequest with a given requestID.
        */
  @lint("ignore")
  void FSSyncStatus(FSSyncStatus status, int requestID);

  /**
    FSSyncEvent is called by KBFS when the sync status of an individual path
    changes.
        */
  @lint("ignore")
  void FSSyncEvent(FSPathSyncStatus event);
}
