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

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file common/v1/property.proto.
 */
export declare const file_common_v1_property: GenFile;

/**
 * Properties are used by various components to define them, such as: feedback, actions, and conditions.
 *
 * @generated from message common.v1.Property
 */
export declare type Property = Message<"common.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: common.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;

  /**
   * TODO: create different user permissions, this field should then set the "minimum required permission"
   *
   * @generated from field: bool user_editable = 8;
   */
  userEditable: boolean;

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

  /**
   * @generated from field: repeated common.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 common.v1.Property.
 * Use `create(PropertySchema)` to create a new message.
 */
export declare const PropertySchema: GenMessage<Property>;

/**
 * Used to specify the type of a property
 *
 * @generated from enum common.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 common.v1.PropertyType.
 */
export declare const PropertyTypeSchema: GenEnum<PropertyType>;

/**
 * Specifies where the value of a property originates from.
 *
 * @generated from enum common.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 common.v1.PropertyOrigin.
 */
export declare const PropertyOriginSchema: GenEnum<PropertyOrigin>;

