// @generated by protoc-gen-es v2.6.3
// @generated from file plm/v1/task.proto (package plm.v1, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";
import type { LocalizedPose } from "../../geometry/v1/pose_pb";
import type { Vector3 } from "../../geometry/v1/vector3_pb";

/**
 * Describes the file plm/v1/task.proto.
 */
export declare const file_plm_v1_task: GenFile;

/**
 * @generated from message plm.v1.TaskMessage
 */
export declare type TaskMessage = Message<"plm.v1.TaskMessage"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

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

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

  /**
   * @generated from field: int64 sequence_number = 4;
   */
  sequenceNumber: bigint;

  /**
   * @generated from field: string part_id = 5;
   */
  partId: string;

  /**
   * @generated from field: string model_id = 6;
   */
  modelId: string;

  /**
   * @generated from field: plm.v1.TaskType task_type = 7;
   */
  taskType: TaskType;

  /**
   * @generated from field: geometry.v1.LocalizedPose target = 8;
   */
  target?: LocalizedPose;

  /**
   * @generated from field: geometry.v1.Vector3 approach = 9;
   */
  approach?: Vector3;

  /**
   * @generated from field: string parent_id = 10;
   */
  parentId: string;

  /**
   * @generated from field: repeated string agents_ids = 11;
   */
  agentsIds: string[];

  /**
   * @generated from field: string assigned_to = 12;
   */
  assignedTo: string;

  /**
   * @generated from field: plm.v1.TaskState state = 13;
   */
  state: TaskState;

  /**
   * @generated from field: repeated string preconditions = 14;
   */
  preconditions: string[];

  /**
   * @generated from field: repeated string dependants = 15;
   */
  dependants: string[];

  /**
   * @generated from field: plm.v1.TaskAssignmentPreference assignment_preference = 19;
   */
  assignmentPreference: TaskAssignmentPreference;

  /**
   * @generated from field: bool can_reassign = 16;
   */
  canReassign: boolean;

  /**
   * @generated from field: bool can_do = 17;
   */
  canDo: boolean;

  /**
   * TODO: 'complete-importance': could be different levels of "this must be explicitly completed" or tie it together with user level, such that expertise level (expert, intermediate, novice) equal and above intermediate can {bulk, automatic, ... } complete and below must explicitly complete. This should potentially also be tied to the part and this field(s) can then be a custom override for this specific task.
   *
   * @generated from field: bool can_undo = 18;
   */
  canUndo: boolean;
};

/**
 * Describes the message plm.v1.TaskMessage.
 * Use `create(TaskMessageSchema)` to create a new message.
 */
export declare const TaskMessageSchema: GenMessage<TaskMessage>;

/**
 * @generated from message plm.v1.TaskUpdatedMessage
 */
export declare type TaskUpdatedMessage = Message<"plm.v1.TaskUpdatedMessage"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string assigned_to = 2;
   */
  assignedTo: string;

  /**
   * @generated from field: plm.v1.TaskState state = 3;
   */
  state: TaskState;

  /**
   * @generated from field: bool can_reassign = 4;
   */
  canReassign: boolean;

  /**
   * @generated from field: bool can_do = 5;
   */
  canDo: boolean;

  /**
   * @generated from field: bool can_undo = 6;
   */
  canUndo: boolean;
};

/**
 * Describes the message plm.v1.TaskUpdatedMessage.
 * Use `create(TaskUpdatedMessageSchema)` to create a new message.
 */
export declare const TaskUpdatedMessageSchema: GenMessage<TaskUpdatedMessage>;

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

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

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

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

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

  /**
   * @generated from enum value: TASK_STATE_ERROR = 6;
   */
  ERROR = 6,
}

/**
 * Describes the enum plm.v1.TaskState.
 */
export declare const TaskStateSchema: GenEnum<TaskState>;

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

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

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

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

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

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

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

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

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

  /**
   * @generated from enum value: TASK_TYPE_WIPE = 9;
   */
  WIPE = 9,
}

/**
 * Describes the enum plm.v1.TaskType.
 */
export declare const TaskTypeSchema: GenEnum<TaskType>;

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

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

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

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

  /**
   * @generated from enum value: TASK_ASSIGNMENT_PREFERENCE_ONLY_ROBOT = 4;
   */
  ONLY_ROBOT = 4,
}

/**
 * Describes the enum plm.v1.TaskAssignmentPreference.
 */
export declare const TaskAssignmentPreferenceSchema: GenEnum<TaskAssignmentPreference>;

