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

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
import type { WorkerPermission } from "./permissions_pb.ts";
import { file_ar_v1_permissions } from "./permissions_pb.ts";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file ar/v1/property.proto.
 */
export const file_ar_v1_property: GenFile = /*@__PURE__*/
  fileDesc("ChRhci92MS9wcm9wZXJ0eS5wcm90bxIFYXIudjEiswQKCFByb3BlcnR5EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIuCgR0eXBlGAUgASgOMhMuYXIudjEuUHJvcGVydHlUeXBlQgu6SAjIAQGCAQIQARINCgV2YWx1ZRgGIAEoCRIOCgZleHRyYXMYByABKAkSRgobbWluaW11bV9yZXF1aXJlZF9wZXJtaXNzaW9uGAggASgOMhcuYXIudjEuV29ya2VyUGVybWlzc2lvbkIIukgFggECEAESLwoGb3JpZ2luGAkgASgOMhUuYXIudjEuUHJvcGVydHlPcmlnaW5CCLpIBYIBAhABEjUKB29yaWdpbnMYCiADKA4yFS5hci52MS5Qcm9wZXJ0eU9yaWdpbkINukgKkgEHIgWCAQIQARIaChJtaXJyb3JfcHJvcGVydHlfaWQYCyABKAkSDQoFZ3JvdXAYDCABKAkSEAoIb3JkZXJpbmcYDSABKAUSEgoKaGlkZV9ncm91cBgOIAEoCDqZAbpIlQEakgEKIW1pcnJvcl9pZF9zZXRfaWZfb3JpZ2luX2lzX21pcnJvchIrTWlycm9yIElEIG11c3QgYmUgc2V0IHdoZW4gb3JpZ2luIGlzIG1pcnJvchpAIXRoaXMubWlycm9yX3Byb3BlcnR5X2lkLnN0YXJ0c1dpdGgoJ3Byb3AtJykgJiYgdGhpcy5vcmlnaW4gPT0gMireAgoMUHJvcGVydHlUeXBlEh0KGVBST1BFUlRZX1RZUEVfVU5TUEVDSUZJRUQQABIWChJQUk9QRVJUWV9UWVBFX0JPT0wQARIVChFQUk9QRVJUWV9UWVBFX0lOVBACEhcKE1BST1BFUlRZX1RZUEVfRkxPQVQQAxIYChRQUk9QRVJUWV9UWVBFX0RPVUJMRRAEEhgKFFBST1BFUlRZX1RZUEVfU1RSSU5HEAUSGQoVUFJPUEVSVFlfVFlQRV9WRUNUT1IzEAYSFgoSUFJPUEVSVFlfVFlQRV9QT1NFEAcSGAoUUFJPUEVSVFlfVFlQRV9BTkNIT1IQCBIXChNQUk9QRVJUWV9UWVBFX0NPTE9SEAkSFwoTUFJPUEVSVFlfVFlQRV9BR0VOVBAKEhYKElBST1BFUlRZX1RZUEVfRU5VTRALEhwKGFBST1BFUlRZX1RZUEVfRU5VTV9NVUxUSRAMKmgKDlByb3BlcnR5T3JpZ2luEh8KG1BST1BFUlRZX09SSUdJTl9VTlNQRUNJRklFRBAAEhkKFVBST1BFUlRZX09SSUdJTl9GSVhFRBABEhoKFlBST1BFUlRZX09SSUdJTl9NSVJST1IQAkKJAQoJY29tLmFyLnYxQg1Qcm9wZXJ0eVByb3RvUAFaL2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9hci92MTthcnYxogIDQVhYqgIOTWVzc2FnZXMuQVIuVjHKAgVBclxWMeICEUFyXFYxXEdQQk1ldGFkYXRh6gIGQXI6OlYxYgZwcm90bzM", [file_ar_v1_permissions, file_buf_validate_validate]);

/**
 * Properties are used by various components to define them, such as: feedback, actions, and conditions.
 *
 * @generated from message ar.v1.Property
 */
export type Property = Message<"ar.v1.Property"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

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

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

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

  /**
   * @generated from field: ar.v1.PropertyType type = 5;
   */
  type: PropertyType;

  /**
   * the current value of the property (JSON encoded)
   *
   * @generated from field: string value = 6;
   */
  value: string;

  /**
   * JSON encoded extra values, e.g. {min: -0.1, max: 0.5, step: 0.1} for a double property.
   *
   * @generated from field: string extras = 7;
   */
  extras: string;

  /**
   * @generated from field: ar.v1.WorkerPermission minimum_required_permission = 8;
   */
  minimumRequiredPermission: WorkerPermission;

  /**
   * @generated from field: ar.v1.PropertyOrigin origin = 9;
   */
  origin: PropertyOrigin;

  /**
   * @generated from field: repeated ar.v1.PropertyOrigin origins = 10;
   */
  origins: PropertyOrigin[];

  /**
   * @generated from field: string mirror_property_id = 11;
   */
  mirrorPropertyId: string;

  /**
   * @generated from field: string group = 12;
   */
  group: string;

  /**
   * @generated from field: int32 ordering = 13;
   */
  ordering: number;

  /**
   * @generated from field: bool hide_group = 14;
   */
  hideGroup: boolean;
};

/**
 * Describes the message ar.v1.Property.
 * Use `create(PropertySchema)` to create a new message.
 */
export const PropertySchema: GenMessage<Property> = /*@__PURE__*/
  messageDesc(file_ar_v1_property, 0);

/**
 * Used to specify the type of a property
 *
 * @generated from enum ar.v1.PropertyType
 */
export enum PropertyType {
  /**
   * @generated from enum value: PROPERTY_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

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

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

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

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

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

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

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

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

  /**
   * @generated from enum value: PROPERTY_TYPE_COLOR = 9;
   */
  COLOR = 9,

  /**
   * @generated from enum value: PROPERTY_TYPE_AGENT = 10;
   */
  AGENT = 10,

  /**
   * @generated from enum value: PROPERTY_TYPE_ENUM = 11;
   */
  ENUM = 11,

  /**
   * @generated from enum value: PROPERTY_TYPE_ENUM_MULTI = 12;
   */
  ENUM_MULTI = 12,
}

/**
 * Describes the enum ar.v1.PropertyType.
 */
export const PropertyTypeSchema: GenEnum<PropertyType> = /*@__PURE__*/
  enumDesc(file_ar_v1_property, 0);

/**
 * Specifies where the value of a property originates from.
 *
 * @generated from enum ar.v1.PropertyOrigin
 */
export enum PropertyOrigin {
  /**
   * @generated from enum value: PROPERTY_ORIGIN_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * The value of the property is fixed and must be changed manually
   *
   * @generated from enum value: PROPERTY_ORIGIN_FIXED = 1;
   */
  FIXED = 1,

  /**
   * The value of the property mirrors the value of another property
   *
   * @generated from enum value: PROPERTY_ORIGIN_MIRROR = 2;
   */
  MIRROR = 2,
}

/**
 * Describes the enum ar.v1.PropertyOrigin.
 */
export const PropertyOriginSchema: GenEnum<PropertyOrigin> = /*@__PURE__*/
  enumDesc(file_ar_v1_property, 1);

