/**
 * Copyright 2024 Signal Messenger, LLC
 * SPDX-License-Identifier: AGPL-3.0-only
 */
syntax = "proto3";

package org.signal.chat.presence;

option java_package = "org.whispersystems.textsecuregcm.push";
option java_multiple_files = true;

message ClientEvent {
  reserved 3;
  oneof event {
    NewMessageAvailableEvent new_message_available = 1;
    ClientConnectedEvent client_connected = 2;
    MessagesPersistedEvent messages_persisted = 4;
  }
}

/**
 * Indicates that a new message is available for the client to retrieve.
 */
message NewMessageAvailableEvent {
}

/**
 * Indicates that a client has connected to the presence system.
 */
message ClientConnectedEvent {
  bytes server_id = 1;
}

/**
 * Indicates that messages for the client have been persisted from short-term
 * storage to long-term storage.
 */
message MessagesPersistedEvent {
}
