// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file collabShared.proto (package api, syntax proto3)
/* eslint-disable */
// @ts-nocheck

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
import { ClaimStatus, DateTime } from "./shared_pb.js";
import { Struct } from "./google/protobuf/struct_pb.js";

/**
 * @generated from enum api.NotifTypeEnum
 */
export enum NotifTypeEnum {
  /**
   * @generated from enum value: NOTIF_TYPE_UNKNOWN = 0;
   */
  NOTIF_TYPE_UNKNOWN = 0,

  /**
   * @generated from enum value: NOTIF_TYPE_COMMENT = 1;
   */
  NOTIF_TYPE_COMMENT = 1,

  /**
   * @generated from enum value: NOTIF_TYPE_STATUS = 2;
   */
  NOTIF_TYPE_STATUS = 2,

  /**
   * @generated from enum value: NOTIF_TYPE_ATTACHMENT_ADDED = 3;
   */
  NOTIF_TYPE_ATTACHMENT_ADDED = 3,

  /**
   * @generated from enum value: NOTIF_TYPE_ATTACHMENT_DELETED = 4;
   */
  NOTIF_TYPE_ATTACHMENT_DELETED = 4,

  /**
   * @generated from enum value: NOTIF_TYPE_CREATION = 5;
   */
  NOTIF_TYPE_CREATION = 5,

  /**
   * @generated from enum value: NOTIF_TYPE_DELETION = 6;
   */
  NOTIF_TYPE_DELETION = 6,

  /**
   * @generated from enum value: NOTIF_TYPE_CONTACT = 7;
   */
  NOTIF_TYPE_CONTACT = 7,

  /**
   * @generated from enum value: NOTIF_TYPE_UPDATE = 8;
   */
  NOTIF_TYPE_UPDATE = 8,

  /**
   * @generated from enum value: NOTIF_TYPE_COMPLETION = 9;
   */
  NOTIF_TYPE_COMPLETION = 9,
}
// Retrieve enum metadata with: proto3.getEnumType(NotifTypeEnum)
proto3.util.setEnumType(NotifTypeEnum, "api.NotifTypeEnum", [
  { no: 0, name: "NOTIF_TYPE_UNKNOWN" },
  { no: 1, name: "NOTIF_TYPE_COMMENT" },
  { no: 2, name: "NOTIF_TYPE_STATUS" },
  { no: 3, name: "NOTIF_TYPE_ATTACHMENT_ADDED" },
  { no: 4, name: "NOTIF_TYPE_ATTACHMENT_DELETED" },
  { no: 5, name: "NOTIF_TYPE_CREATION" },
  { no: 6, name: "NOTIF_TYPE_DELETION" },
  { no: 7, name: "NOTIF_TYPE_CONTACT" },
  { no: 8, name: "NOTIF_TYPE_UPDATE" },
  { no: 9, name: "NOTIF_TYPE_COMPLETION" },
]);

/**
 * @generated from message api.ClaimStatusDef
 */
export class ClaimStatusDef extends Message<ClaimStatusDef> {
  /**
   * @generated from field: api.ClaimStatus StatusCode = 1;
   */
  StatusCode = ClaimStatus.UNKNOWN;

  /**
   * This date is only a string as it is always given by system
   *
   * @generated from field: string Date = 2;
   */
  Date = "";

  /**
   * Status effective date. Set by the event's RefDate that triggered the status change.
   *
   * @generated from field: api.DateTime ActualDate = 3;
   */
  ActualDate?: DateTime;

  constructor(data?: PartialMessage<ClaimStatusDef>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimStatusDef";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "StatusCode", kind: "enum", T: proto3.getEnumType(ClaimStatus) },
    { no: 2, name: "Date", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "ActualDate", kind: "message", T: DateTime },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ClaimStatusDef {
    return new ClaimStatusDef().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ClaimStatusDef {
    return new ClaimStatusDef().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ClaimStatusDef {
    return new ClaimStatusDef().fromJsonString(jsonString, options);
  }

  static equals(a: ClaimStatusDef | PlainMessage<ClaimStatusDef> | undefined, b: ClaimStatusDef | PlainMessage<ClaimStatusDef> | undefined): boolean {
    return proto3.util.equals(ClaimStatusDef, a, b);
  }
}

/**
 * @generated from message api.ClaimStatusStruct
 */
export class ClaimStatusStruct extends Message<ClaimStatusStruct> {
  /**
   * Current status of the Claim entity
   *
   * @generated from field: api.ClaimStatusDef Current = 1;
   */
  Current?: ClaimStatusDef;

  /**
   * List of all status history of the Claim entity
   *
   * @generated from field: repeated api.ClaimStatusDef History = 2;
   */
  History: ClaimStatusDef[] = [];

  /**
   * @generated from field: string CreationDate = 3;
   */
  CreationDate = "";

  /**
   * @generated from field: uint32 Version = 4;
   */
  Version = 0;

  constructor(data?: PartialMessage<ClaimStatusStruct>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimStatusStruct";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Current", kind: "message", T: ClaimStatusDef },
    { no: 2, name: "History", kind: "message", T: ClaimStatusDef, repeated: true },
    { no: 3, name: "CreationDate", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "Version", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ClaimStatusStruct {
    return new ClaimStatusStruct().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ClaimStatusStruct {
    return new ClaimStatusStruct().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ClaimStatusStruct {
    return new ClaimStatusStruct().fromJsonString(jsonString, options);
  }

  static equals(a: ClaimStatusStruct | PlainMessage<ClaimStatusStruct> | undefined, b: ClaimStatusStruct | PlainMessage<ClaimStatusStruct> | undefined): boolean {
    return proto3.util.equals(ClaimStatusStruct, a, b);
  }
}

/**
 * @generated from message api.WindowedNotif
 */
export class WindowedNotif extends Message<WindowedNotif> {
  /**
   * @generated from field: api.ListNotifChanges ListNotifChanges = 1;
   */
  ListNotifChanges?: ListNotifChanges;

  /**
   * @generated from field: repeated api.UserMails UserMails = 2;
   */
  UserMails: UserMails[] = [];

  /**
   * @generated from field: string JsonModel = 3;
   */
  JsonModel = "";

  /**
   * @generated from field: string languageCode = 4;
   */
  languageCode = "";

  /**
   * @generated from field: string HtmlBody = 5;
   */
  HtmlBody = "";

  constructor(data?: PartialMessage<WindowedNotif>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.WindowedNotif";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ListNotifChanges", kind: "message", T: ListNotifChanges },
    { no: 2, name: "UserMails", kind: "message", T: UserMails, repeated: true },
    { no: 3, name: "JsonModel", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "languageCode", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 5, name: "HtmlBody", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WindowedNotif {
    return new WindowedNotif().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WindowedNotif {
    return new WindowedNotif().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WindowedNotif {
    return new WindowedNotif().fromJsonString(jsonString, options);
  }

  static equals(a: WindowedNotif | PlainMessage<WindowedNotif> | undefined, b: WindowedNotif | PlainMessage<WindowedNotif> | undefined): boolean {
    return proto3.util.equals(WindowedNotif, a, b);
  }
}

/**
 * @generated from message api.UserMails
 */
export class UserMails extends Message<UserMails> {
  /**
   * @generated from field: string mail = 1;
   */
  mail = "";

  /**
   * @generated from field: string languageCode = 2;
   */
  languageCode = "";

  constructor(data?: PartialMessage<UserMails>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.UserMails";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "mail", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "languageCode", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UserMails {
    return new UserMails().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UserMails {
    return new UserMails().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UserMails {
    return new UserMails().fromJsonString(jsonString, options);
  }

  static equals(a: UserMails | PlainMessage<UserMails> | undefined, b: UserMails | PlainMessage<UserMails> | undefined): boolean {
    return proto3.util.equals(UserMails, a, b);
  }
}

/**
 * @generated from message api.ListNotifChanges
 */
export class ListNotifChanges extends Message<ListNotifChanges> {
  /**
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

  /**
   * @generated from field: string VisibilityURI = 2;
   */
  VisibilityURI = "";

  /**
   * @generated from field: string EntityType = 3;
   */
  EntityType = "";

  /**
   * @generated from field: string EntityRefID = 4;
   */
  EntityRefID = "";

  /**
   * @generated from field: repeated api.NotifChanges NotifChanges = 5;
   */
  NotifChanges: NotifChanges[] = [];

  /**
   * @generated from field: google.protobuf.Struct Tags = 6;
   */
  Tags?: Struct;

  constructor(data?: PartialMessage<ListNotifChanges>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ListNotifChanges";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ProjectID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "VisibilityURI", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "EntityType", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "EntityRefID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 5, name: "NotifChanges", kind: "message", T: NotifChanges, repeated: true },
    { no: 6, name: "Tags", kind: "message", T: Struct },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListNotifChanges {
    return new ListNotifChanges().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListNotifChanges {
    return new ListNotifChanges().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListNotifChanges {
    return new ListNotifChanges().fromJsonString(jsonString, options);
  }

  static equals(a: ListNotifChanges | PlainMessage<ListNotifChanges> | undefined, b: ListNotifChanges | PlainMessage<ListNotifChanges> | undefined): boolean {
    return proto3.util.equals(ListNotifChanges, a, b);
  }
}

/**
 * @generated from message api.NotifChanges
 */
export class NotifChanges extends Message<NotifChanges> {
  /**
   * @generated from field: api.DateTime RefDate = 1;
   */
  RefDate?: DateTime;

  /**
   * @generated from field: string UserName = 2;
   */
  UserName = "";

  /**
   * @generated from field: api.NotifTypeEnum NotificationType = 3;
   */
  NotificationType = NotifTypeEnum.NOTIF_TYPE_UNKNOWN;

  /**
   * @generated from field: google.protobuf.Struct Details = 4;
   */
  Details?: Struct;

  constructor(data?: PartialMessage<NotifChanges>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.NotifChanges";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "RefDate", kind: "message", T: DateTime },
    { no: 2, name: "UserName", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "NotificationType", kind: "enum", T: proto3.getEnumType(NotifTypeEnum) },
    { no: 4, name: "Details", kind: "message", T: Struct },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): NotifChanges {
    return new NotifChanges().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): NotifChanges {
    return new NotifChanges().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): NotifChanges {
    return new NotifChanges().fromJsonString(jsonString, options);
  }

  static equals(a: NotifChanges | PlainMessage<NotifChanges> | undefined, b: NotifChanges | PlainMessage<NotifChanges> | undefined): boolean {
    return proto3.util.equals(NotifChanges, a, b);
  }
}

