// @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
// @generated from file plm/v1/process.proto (package plm.v1, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
import type { LocalizedPose } from "../../geometry/v1/pose_pb.ts";
import { file_geometry_v1_pose } from "../../geometry/v1/pose_pb.ts";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { SequenceMessage } from "./sequence_pb.ts";
import { file_plm_v1_sequence } from "./sequence_pb.ts";
import type { TaskMessage } from "./task_pb.ts";
import { file_plm_v1_task } from "./task_pb.ts";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file plm/v1/process.proto.
 */
export const file_plm_v1_process: GenFile = /*@__PURE__*/
  fileDesc("ChRwbG0vdjEvcHJvY2Vzcy5wcm90bxIGcGxtLnYxIq4DCg5Qcm9jZXNzTWVzc2FnZRITCgtpbnN0YW5jZV9pZBgBIAEoCRIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiEKBHR5cGUYBSABKA4yEy5wbG0udjEuUHJvY2Vzc1R5cGUSKQoFZnJhbWUYBiABKAsyGi5nZW9tZXRyeS52MS5Mb2NhbGl6ZWRQb3NlEhgKEHJvb3Rfc2VxdWVuY2VfaWQYByABKAkSKgoJc2VxdWVuY2VzGAggAygLMhcucGxtLnYxLlNlcXVlbmNlTWVzc2FnZRIiCgV0YXNrcxgJIAMoCzITLnBsbS52MS5UYXNrTWVzc2FnZRIjCgVzdGF0ZRgKIAEoDjIULnBsbS52MS5Qcm9jZXNzU3RhdGUSLQoJaW5pdGlhdGVkGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIpCgVlbmRlZBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIb3JkZXJfaWQYDSABKAkSDwoHbGluZV9pZBgOIAEoCSKIAQoVUHJvY2Vzc1VwZGF0ZWRNZXNzYWdlEhMKC2luc3RhbmNlX2lkGAEgASgJEgoKAmlkGAIgASgJEiMKBXN0YXRlGAogASgOMhQucGxtLnYxLlByb2Nlc3NTdGF0ZRIpCgVlbmRlZBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiPQoQUHJvY2Vzc2VzTWVzc2FnZRIpCglwcm9jZXNzZXMYASADKAsyFi5wbG0udjEuUHJvY2Vzc01lc3NhZ2UqnQEKC1Byb2Nlc3NUeXBlEhwKGFBST0NFU1NfVFlQRV9VTlNQRUNJRklFRBAAEhkKFVBST0NFU1NfVFlQRV9BU1NFTUJMWRABEhwKGFBST0NFU1NfVFlQRV9ESVNBU1NFTUJMWRACEhsKF1BST0NFU1NfVFlQRV9JTlNQRUNUSU9OEAMSGgoWUFJPQ0VTU19UWVBFX0NIRUNLTElTVBAEKp8BCgxQcm9jZXNzU3RhdGUSHQoZUFJPQ0VTU19TVEFURV9VTlNQRUNJRklFRBAAEhkKFVBST0NFU1NfU1RBVEVfV0FJVElORxABEh0KGVBST0NFU1NfU1RBVEVfSU5fUFJPR1JFU1MQAhIbChdQUk9DRVNTX1NUQVRFX0NPTVBMRVRFRBADEhkKFVBST0NFU1NfU1RBVEVfQUJPUlRFRBAEQo8BCgpjb20ucGxtLnYxQgxQcm9jZXNzUHJvdG9QAVoxZ2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3BsbS92MTtwbG12MaICA1BYWKoCD01lc3NhZ2VzLlBsbS5WMcoCBlBsbVxWMeICElBsbVxWMVxHUEJNZXRhZGF0YeoCB1BsbTo6VjFiBnByb3RvMw", [file_geometry_v1_pose, file_google_protobuf_timestamp, file_plm_v1_sequence, file_plm_v1_task]);

/**
 * TODO: should 'running' be called process and 'static' recipe?
 * TODO: Add/assign the agent(s) at runtime, instead of allocating them to the environment. THen there could also be a situation where each agent is asked to take a task during execution.
 *
 * @generated from message plm.v1.ProcessMessage
 */
export type ProcessMessage = Message<"plm.v1.ProcessMessage"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string id = 2;
   */
  id: string;

  /**
   * @generated from field: string name = 3;
   */
  name: string;

  /**
   * @generated from field: string description = 4;
   */
  description: string;

  /**
   * @generated from field: plm.v1.ProcessType type = 5;
   */
  type: ProcessType;

  /**
   * @generated from field: geometry.v1.LocalizedPose frame = 6;
   */
  frame?: LocalizedPose;

  /**
   * @generated from field: string root_sequence_id = 7;
   */
  rootSequenceId: string;

  /**
   * @generated from field: repeated plm.v1.SequenceMessage sequences = 8;
   */
  sequences: SequenceMessage[];

  /**
   * @generated from field: repeated plm.v1.TaskMessage tasks = 9;
   */
  tasks: TaskMessage[];

  /**
   * @generated from field: plm.v1.ProcessState state = 10;
   */
  state: ProcessState;

  /**
   * @generated from field: google.protobuf.Timestamp initiated = 11;
   */
  initiated?: Timestamp;

  /**
   * @generated from field: google.protobuf.Timestamp ended = 12;
   */
  ended?: Timestamp;

  /**
   * @generated from field: string order_id = 13;
   */
  orderId: string;

  /**
   * @generated from field: string line_id = 14;
   */
  lineId: string;
};

/**
 * Describes the message plm.v1.ProcessMessage.
 * Use `create(ProcessMessageSchema)` to create a new message.
 */
export const ProcessMessageSchema: GenMessage<ProcessMessage> = /*@__PURE__*/
  messageDesc(file_plm_v1_process, 0);

/**
 * Update published when the state of a process have changed
 *
 * @generated from message plm.v1.ProcessUpdatedMessage
 */
export type ProcessUpdatedMessage = Message<"plm.v1.ProcessUpdatedMessage"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string id = 2;
   */
  id: string;

  /**
   * @generated from field: plm.v1.ProcessState state = 10;
   */
  state: ProcessState;

  /**
   * @generated from field: google.protobuf.Timestamp ended = 12;
   */
  ended?: Timestamp;
};

/**
 * Describes the message plm.v1.ProcessUpdatedMessage.
 * Use `create(ProcessUpdatedMessageSchema)` to create a new message.
 */
export const ProcessUpdatedMessageSchema: GenMessage<ProcessUpdatedMessage> = /*@__PURE__*/
  messageDesc(file_plm_v1_process, 1);

/**
 * @generated from message plm.v1.ProcessesMessage
 */
export type ProcessesMessage = Message<"plm.v1.ProcessesMessage"> & {
  /**
   * @generated from field: repeated plm.v1.ProcessMessage processes = 1;
   */
  processes: ProcessMessage[];
};

/**
 * Describes the message plm.v1.ProcessesMessage.
 * Use `create(ProcessesMessageSchema)` to create a new message.
 */
export const ProcessesMessageSchema: GenMessage<ProcessesMessage> = /*@__PURE__*/
  messageDesc(file_plm_v1_process, 2);

/**
 * @generated from enum plm.v1.ProcessType
 */
export enum ProcessType {
  /**
   * @generated from enum value: PROCESS_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

  /**
   * TODO: what should this be?
   *
   * @generated from enum value: PROCESS_TYPE_INSPECTION = 3;
   */
  INSPECTION = 3,

  /**
   * TODO: this could be startup procedures, fault fixing, ...
   *
   * @generated from enum value: PROCESS_TYPE_CHECKLIST = 4;
   */
  CHECKLIST = 4,
}

/**
 * Describes the enum plm.v1.ProcessType.
 */
export const ProcessTypeSchema: GenEnum<ProcessType> = /*@__PURE__*/
  enumDesc(file_plm_v1_process, 0);

/**
 * @generated from enum plm.v1.ProcessState
 */
export enum ProcessState {
  /**
   * @generated from enum value: PROCESS_STATE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

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

  /**
   * @generated from enum value: PROCESS_STATE_ABORTED = 4;
   */
  ABORTED = 4,
}

/**
 * Describes the enum plm.v1.ProcessState.
 */
export const ProcessStateSchema: GenEnum<ProcessState> = /*@__PURE__*/
  enumDesc(file_plm_v1_process, 1);

