// The following is a list of messages that are used across multiple resource subtypes
import { Message, MethodOptions, proto3, Struct, Timestamp, Value } from "@bufbuild/protobuf";
/**
 * @generated from enum viam.common.v1.KinematicsFileFormat
 */
export var KinematicsFileFormat;
(function (KinematicsFileFormat) {
    /**
     * @generated from enum value: KINEMATICS_FILE_FORMAT_UNSPECIFIED = 0;
     */
    KinematicsFileFormat[KinematicsFileFormat["UNSPECIFIED"] = 0] = "UNSPECIFIED";
    /**
     * @generated from enum value: KINEMATICS_FILE_FORMAT_SVA = 1;
     */
    KinematicsFileFormat[KinematicsFileFormat["SVA"] = 1] = "SVA";
    /**
     * @generated from enum value: KINEMATICS_FILE_FORMAT_URDF = 2;
     */
    KinematicsFileFormat[KinematicsFileFormat["URDF"] = 2] = "URDF";
})(KinematicsFileFormat || (KinematicsFileFormat = {}));
// Retrieve enum metadata with: proto3.getEnumType(KinematicsFileFormat)
proto3.util.setEnumType(KinematicsFileFormat, "viam.common.v1.KinematicsFileFormat", [
    { no: 0, name: "KINEMATICS_FILE_FORMAT_UNSPECIFIED" },
    { no: 1, name: "KINEMATICS_FILE_FORMAT_SVA" },
    { no: 2, name: "KINEMATICS_FILE_FORMAT_URDF" },
]);
/**
 * @generated from message viam.common.v1.ResourceName
 */
export class ResourceName extends Message {
    /**
     * @generated from field: string namespace = 1;
     */
    namespace = "";
    /**
     * @generated from field: string type = 2;
     */
    type = "";
    /**
     * @generated from field: string subtype = 3;
     */
    subtype = "";
    /**
     * @generated from field: string name = 4;
     */
    name = "";
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.ResourceName";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "namespace", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "type", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 3, name: "subtype", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 4, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    ]);
    static fromBinary(bytes, options) {
        return new ResourceName().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new ResourceName().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new ResourceName().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(ResourceName, a, b);
    }
}
/**
 * Pose is a combination of location and orientation.
 * Location is expressed as distance which is represented by x , y, z coordinates. Orientation is expressed as an orientation vector which
 * is represented by o_x, o_y, o_z and theta. The o_x, o_y, o_z coordinates represent the point on the cartesian unit sphere that the end of
 * the arm is pointing to (with the origin as reference). That unit vector forms an axis around which theta rotates. This means that
 * incrementing / decrementing theta will perform an inline rotation of the end effector.
 * Theta is defined as rotation between two planes: the first being defined by the origin, the point (0,0,1), and the rx, ry, rz point, and the
 * second being defined by the origin, the rx, ry, rz point and the local Z axis. Therefore, if theta is kept at zero as the north/south pole
 * is circled, the Roll will correct itself to remain in-line.
 *
 * @generated from message viam.common.v1.Pose
 */
export class Pose extends Message {
    /**
     * millimeters from the origin
     *
     * @generated from field: double x = 1;
     */
    x = 0;
    /**
     * millimeters from the origin
     *
     * @generated from field: double y = 2;
     */
    y = 0;
    /**
     * millimeters from the origin
     *
     * @generated from field: double z = 3;
     */
    z = 0;
    /**
     * z component of a vector defining axis of rotation
     *
     * @generated from field: double o_x = 4;
     */
    oX = 0;
    /**
     * x component of a vector defining axis of rotation
     *
     * @generated from field: double o_y = 5;
     */
    oY = 0;
    /**
     * y component of a vector defining axis of rotation
     *
     * @generated from field: double o_z = 6;
     */
    oZ = 0;
    /**
     * degrees
     *
     * @generated from field: double theta = 7;
     */
    theta = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Pose";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "x", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 2, name: "y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 3, name: "z", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 4, name: "o_x", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 5, name: "o_y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 6, name: "o_z", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 7, name: "theta", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
    ]);
    static fromBinary(bytes, options) {
        return new Pose().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Pose().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Pose().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Pose, a, b);
    }
}
/**
 * @generated from message viam.common.v1.Orientation
 */
export class Orientation extends Message {
    /**
     * x component of a vector defining axis of rotation
     *
     * @generated from field: double o_x = 1;
     */
    oX = 0;
    /**
     * y component of a vector defining axis of rotation
     *
     * @generated from field: double o_y = 2;
     */
    oY = 0;
    /**
     * z component of a vector defining axis of rotation
     *
     * @generated from field: double o_z = 3;
     */
    oZ = 0;
    /**
     * degrees
     *
     * @generated from field: double theta = 4;
     */
    theta = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Orientation";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "o_x", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 2, name: "o_y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 3, name: "o_z", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 4, name: "theta", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
    ]);
    static fromBinary(bytes, options) {
        return new Orientation().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Orientation().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Orientation().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Orientation, a, b);
    }
}
/**
 * @generated from message viam.common.v1.PoseCloud
 */
export class PoseCloud extends Message {
    /**
     * @generated from field: double x = 1;
     */
    x = 0;
    /**
     * @generated from field: double y = 2;
     */
    y = 0;
    /**
     * @generated from field: double z = 3;
     */
    z = 0;
    /**
     * @generated from field: double o_x = 4;
     */
    oX = 0;
    /**
     * @generated from field: double o_y = 5;
     */
    oY = 0;
    /**
     * @generated from field: double o_z = 6;
     */
    oZ = 0;
    /**
     * @generated from field: double theta = 7;
     */
    theta = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.PoseCloud";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "x", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 2, name: "y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 3, name: "z", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 4, name: "o_x", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 5, name: "o_y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 6, name: "o_z", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 7, name: "theta", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
    ]);
    static fromBinary(bytes, options) {
        return new PoseCloud().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new PoseCloud().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new PoseCloud().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(PoseCloud, a, b);
    }
}
/**
 * PoseInFrame contains a pose and the reference frame in which it was observed
 *
 * @generated from message viam.common.v1.PoseInFrame
 */
export class PoseInFrame extends Message {
    /**
     * @generated from field: string reference_frame = 1;
     */
    referenceFrame = "";
    /**
     * @generated from field: viam.common.v1.Pose pose = 2;
     */
    pose;
    /**
     * @generated from field: optional viam.common.v1.PoseCloud goal_cloud = 3;
     */
    goalCloud;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.PoseInFrame";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "reference_frame", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "pose", kind: "message", T: Pose },
        { no: 3, name: "goal_cloud", kind: "message", T: PoseCloud, opt: true },
    ]);
    static fromBinary(bytes, options) {
        return new PoseInFrame().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new PoseInFrame().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new PoseInFrame().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(PoseInFrame, a, b);
    }
}
/**
 * @generated from message viam.common.v1.Vector3
 */
export class Vector3 extends Message {
    /**
     * @generated from field: double x = 1;
     */
    x = 0;
    /**
     * @generated from field: double y = 2;
     */
    y = 0;
    /**
     * @generated from field: double z = 3;
     */
    z = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Vector3";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "x", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 2, name: "y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 3, name: "z", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
    ]);
    static fromBinary(bytes, options) {
        return new Vector3().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Vector3().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Vector3().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Vector3, a, b);
    }
}
/**
 * @generated from message viam.common.v1.Sphere
 */
export class Sphere extends Message {
    /**
     * @generated from field: double radius_mm = 1;
     */
    radiusMm = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Sphere";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "radius_mm", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
    ]);
    static fromBinary(bytes, options) {
        return new Sphere().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Sphere().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Sphere().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Sphere, a, b);
    }
}
/**
 * @generated from message viam.common.v1.Capsule
 */
export class Capsule extends Message {
    /**
     * @generated from field: double radius_mm = 1;
     */
    radiusMm = 0;
    /**
     * @generated from field: double length_mm = 2;
     */
    lengthMm = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Capsule";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "radius_mm", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 2, name: "length_mm", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
    ]);
    static fromBinary(bytes, options) {
        return new Capsule().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Capsule().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Capsule().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Capsule, a, b);
    }
}
/**
 * RectangularPrism contains a Vector3 field corresponding to the X, Y, Z dimensions of the prism in mms
 * These dimensions are with respect to the referenceframe in which the RectangularPrism is defined
 *
 * @generated from message viam.common.v1.RectangularPrism
 */
export class RectangularPrism extends Message {
    /**
     * @generated from field: viam.common.v1.Vector3 dims_mm = 1;
     */
    dimsMm;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.RectangularPrism";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "dims_mm", kind: "message", T: Vector3 },
    ]);
    static fromBinary(bytes, options) {
        return new RectangularPrism().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new RectangularPrism().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new RectangularPrism().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(RectangularPrism, a, b);
    }
}
/**
 * @generated from message viam.common.v1.Mesh
 */
export class Mesh extends Message {
    /**
     * Content type of mesh (e.g. ply)
     *
     * @generated from field: string content_type = 1;
     */
    contentType = "";
    /**
     * Contents of mesh data in binary form defined by content_type
     *
     * @generated from field: bytes mesh = 2;
     */
    mesh = new Uint8Array(0);
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Mesh";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "content_type", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "mesh", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
    ]);
    static fromBinary(bytes, options) {
        return new Mesh().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Mesh().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Mesh().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Mesh, a, b);
    }
}
/**
 * @generated from message viam.common.v1.PointCloud
 */
export class PointCloud extends Message {
    /**
     * @generated from field: bytes point_cloud = 1;
     */
    pointCloud = new Uint8Array(0);
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.PointCloud";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "point_cloud", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
    ]);
    static fromBinary(bytes, options) {
        return new PointCloud().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new PointCloud().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new PointCloud().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(PointCloud, a, b);
    }
}
/**
 * Geometry contains the dimensions of a given geometry and the pose of its center. The geometry is one of either a sphere or a box.
 *
 * @generated from message viam.common.v1.Geometry
 */
export class Geometry extends Message {
    /**
     * Pose of a geometries center point
     *
     * @generated from field: viam.common.v1.Pose center = 1;
     */
    center;
    /**
     * Dimensions of a given geometry. This can be one of several types
     *
     * @generated from oneof viam.common.v1.Geometry.geometry_type
     */
    geometryType = { case: undefined };
    /**
     * Label of the geometry. If none supplied, will be an empty string.
     *
     * @generated from field: string label = 4;
     */
    label = "";
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Geometry";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "center", kind: "message", T: Pose },
        { no: 2, name: "sphere", kind: "message", T: Sphere, oneof: "geometry_type" },
        { no: 3, name: "box", kind: "message", T: RectangularPrism, oneof: "geometry_type" },
        { no: 5, name: "capsule", kind: "message", T: Capsule, oneof: "geometry_type" },
        { no: 6, name: "mesh", kind: "message", T: Mesh, oneof: "geometry_type" },
        { no: 7, name: "pointcloud", kind: "message", T: PointCloud, oneof: "geometry_type" },
        { no: 4, name: "label", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    ]);
    static fromBinary(bytes, options) {
        return new Geometry().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Geometry().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Geometry().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Geometry, a, b);
    }
}
/**
 * GeometriesinFrame contains the dimensions of a given geometry, pose of its center point, and the reference frame by which it was
 * observed.
 *
 * @generated from message viam.common.v1.GeometriesInFrame
 */
export class GeometriesInFrame extends Message {
    /**
     * Reference frame of the observer of the geometry
     *
     * @generated from field: string reference_frame = 1;
     */
    referenceFrame = "";
    /**
     * Dimensional type
     *
     * @generated from field: repeated viam.common.v1.Geometry geometries = 2;
     */
    geometries = [];
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GeometriesInFrame";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "reference_frame", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "geometries", kind: "message", T: Geometry, repeated: true },
    ]);
    static fromBinary(bytes, options) {
        return new GeometriesInFrame().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GeometriesInFrame().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GeometriesInFrame().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GeometriesInFrame, a, b);
    }
}
/**
 * PointCloudObject contains an image in bytes with point cloud data of all of the objects captured by a given observer as well as a
 * repeated list of geometries which respresents the center point and geometry of each of the objects within the point cloud
 *
 * @generated from message viam.common.v1.PointCloudObject
 */
export class PointCloudObject extends Message {
    /**
     * image frame expressed in bytes
     *
     * @generated from field: bytes point_cloud = 1;
     */
    pointCloud = new Uint8Array(0);
    /**
     * volume of a given geometry
     *
     * @generated from field: viam.common.v1.GeometriesInFrame geometries = 2;
     */
    geometries;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.PointCloudObject";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "point_cloud", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
        { no: 2, name: "geometries", kind: "message", T: GeometriesInFrame },
    ]);
    static fromBinary(bytes, options) {
        return new PointCloudObject().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new PointCloudObject().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new PointCloudObject().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(PointCloudObject, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GeoPoint
 */
export class GeoPoint extends Message {
    /**
     * @generated from field: double latitude = 1;
     */
    latitude = 0;
    /**
     * @generated from field: double longitude = 2;
     */
    longitude = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GeoPoint";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "latitude", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
        { no: 2, name: "longitude", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
    ]);
    static fromBinary(bytes, options) {
        return new GeoPoint().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GeoPoint().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GeoPoint().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GeoPoint, a, b);
    }
}
/**
 * GeoGeometry contains information describing Geometry(s) that is located at a GeoPoint
 *
 * @generated from message viam.common.v1.GeoGeometry
 */
export class GeoGeometry extends Message {
    /**
     * Location of the geometry
     *
     * @generated from field: viam.common.v1.GeoPoint location = 1;
     */
    location;
    /**
     * Geometries associated with the location, where embedded Pose data is with respect to the specified location
     *
     * @generated from field: repeated viam.common.v1.Geometry geometries = 2;
     */
    geometries = [];
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GeoGeometry";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "location", kind: "message", T: GeoPoint },
        { no: 2, name: "geometries", kind: "message", T: Geometry, repeated: true },
    ]);
    static fromBinary(bytes, options) {
        return new GeoGeometry().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GeoGeometry().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GeoGeometry().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GeoGeometry, a, b);
    }
}
/**
 * Transform contains a pose and two reference frames. The first reference frame is the starting reference frame, and the second reference
 * frame is the observer reference frame. The second reference frame has a pose which represents the pose of an object in the first
 * reference frame as observed within the second reference frame.
 *
 * @generated from message viam.common.v1.Transform
 */
export class Transform extends Message {
    /**
     * the name of a given reference frame
     *
     * @generated from field: string reference_frame = 1;
     */
    referenceFrame = "";
    /**
     * the pose of the above reference frame with respect to a different observer reference frame
     *
     * @generated from field: viam.common.v1.PoseInFrame pose_in_observer_frame = 2;
     */
    poseInObserverFrame;
    /**
     * @generated from field: optional viam.common.v1.Geometry physical_object = 3;
     */
    physicalObject;
    /**
     * The UUID of the transform
     *
     * @generated from field: bytes uuid = 4;
     */
    uuid = new Uint8Array(0);
    /**
     * Can hold information like color, opacity, points colors, collision_allowed, etc...
     *
     * @generated from field: optional google.protobuf.Struct metadata = 5;
     */
    metadata;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Transform";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "reference_frame", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "pose_in_observer_frame", kind: "message", T: PoseInFrame },
        { no: 3, name: "physical_object", kind: "message", T: Geometry, opt: true },
        { no: 4, name: "uuid", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
        { no: 5, name: "metadata", kind: "message", T: Struct, opt: true },
    ]);
    static fromBinary(bytes, options) {
        return new Transform().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Transform().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Transform().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Transform, a, b);
    }
}
/**
 * WorldState contains information about the physical environment around a given robot. All of the fields within this message are optional,
 * they can include information about the physical dimensions of an obstacle, the freespace of a robot, and any desired transforms between a
 * given reference frame and a new target reference frame.
 *
 * @generated from message viam.common.v1.WorldState
 */
export class WorldState extends Message {
    /**
     * a list of obstacles expressed as a geometry and the reference frame in which it was observed; this field is optional
     *
     * @generated from field: repeated viam.common.v1.GeometriesInFrame obstacles = 1;
     */
    obstacles = [];
    /**
     * a list of Transforms, optionally with geometries. Used as supplemental transforms to transform a pose from one reference frame to
     * another, or to attach moving geometries to the frame system. This field is optional
     *
     * @generated from field: repeated viam.common.v1.Transform transforms = 3;
     */
    transforms = [];
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.WorldState";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "obstacles", kind: "message", T: GeometriesInFrame, repeated: true },
        { no: 3, name: "transforms", kind: "message", T: Transform, repeated: true },
    ]);
    static fromBinary(bytes, options) {
        return new WorldState().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new WorldState().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new WorldState().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(WorldState, a, b);
    }
}
/**
 * ActuatorStatus is a generic status for resources that only need to return actuator status.
 *
 * @generated from message viam.common.v1.ActuatorStatus
 */
export class ActuatorStatus extends Message {
    /**
     * @generated from field: bool is_moving = 1;
     */
    isMoving = false;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.ActuatorStatus";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "is_moving", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    ]);
    static fromBinary(bytes, options) {
        return new ActuatorStatus().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new ActuatorStatus().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new ActuatorStatus().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(ActuatorStatus, a, b);
    }
}
/**
 * @generated from message viam.common.v1.ResponseMetadata
 */
export class ResponseMetadata extends Message {
    /**
     * captured_at is the time at which the resource as close as physically possible, captured
     * the data in the response.
     * Note: If correlating between other resources, be sure that the means
     * of measuring the capture are similar enough such that comparison can be made between them.
     *
     * @generated from field: optional google.protobuf.Timestamp captured_at = 1;
     */
    capturedAt;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.ResponseMetadata";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "captured_at", kind: "message", T: Timestamp, opt: true },
    ]);
    static fromBinary(bytes, options) {
        return new ResponseMetadata().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new ResponseMetadata().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new ResponseMetadata().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(ResponseMetadata, a, b);
    }
}
/**
 * DoCommandRequest represents a generic DoCommand input
 *
 * @generated from message viam.common.v1.DoCommandRequest
 */
export class DoCommandRequest extends Message {
    /**
     * @generated from field: string name = 1;
     */
    name = "";
    /**
     * @generated from field: google.protobuf.Struct command = 2;
     */
    command;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.DoCommandRequest";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "command", kind: "message", T: Struct },
    ]);
    static fromBinary(bytes, options) {
        return new DoCommandRequest().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new DoCommandRequest().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new DoCommandRequest().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(DoCommandRequest, a, b);
    }
}
/**
 * DoCommandResponse represents a generic DoCommand output
 *
 * @generated from message viam.common.v1.DoCommandResponse
 */
export class DoCommandResponse extends Message {
    /**
     * @generated from field: google.protobuf.Struct result = 1;
     */
    result;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.DoCommandResponse";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "result", kind: "message", T: Struct },
    ]);
    static fromBinary(bytes, options) {
        return new DoCommandResponse().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new DoCommandResponse().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new DoCommandResponse().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(DoCommandResponse, a, b);
    }
}
/**
 * GetStatusRequest represents a generic GetStatus input
 *
 * @generated from message viam.common.v1.GetStatusRequest
 */
export class GetStatusRequest extends Message {
    /**
     * @generated from field: string name = 1;
     */
    name = "";
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetStatusRequest";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    ]);
    static fromBinary(bytes, options) {
        return new GetStatusRequest().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetStatusRequest().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetStatusRequest().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetStatusRequest, a, b);
    }
}
/**
 * GetStatusResponse represents a generic GetStatus output
 *
 * @generated from message viam.common.v1.GetStatusResponse
 */
export class GetStatusResponse extends Message {
    /**
     * @generated from field: google.protobuf.Struct result = 1;
     */
    result;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetStatusResponse";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "result", kind: "message", T: Struct },
    ]);
    static fromBinary(bytes, options) {
        return new GetStatusResponse().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetStatusResponse().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetStatusResponse().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetStatusResponse, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GetKinematicsRequest
 */
export class GetKinematicsRequest extends Message {
    /**
     * The component name
     *
     * @generated from field: string name = 1;
     */
    name = "";
    /**
     * Additional arguments to the method
     *
     * @generated from field: google.protobuf.Struct extra = 99;
     */
    extra;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetKinematicsRequest";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 99, name: "extra", kind: "message", T: Struct },
    ]);
    static fromBinary(bytes, options) {
        return new GetKinematicsRequest().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetKinematicsRequest().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetKinematicsRequest().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetKinematicsRequest, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GetKinematicsResponse
 */
export class GetKinematicsResponse extends Message {
    /**
     * The kinematics of the component, in either URDF format or in Viam’s kinematic parameter format (spatial vector algebra)
     * https://docs.viam.com/internals/kinematic-chain-config/#kinematic-parameters
     *
     * @generated from field: viam.common.v1.KinematicsFileFormat format = 1;
     */
    format = KinematicsFileFormat.UNSPECIFIED;
    /**
     * The byte contents of the file
     *
     * @generated from field: bytes kinematics_data = 2;
     */
    kinematicsData = new Uint8Array(0);
    /**
     * Map of URDF mesh file paths to mesh data
     *
     * @generated from field: map<string, viam.common.v1.Mesh> meshes_by_urdf_filepath = 3;
     */
    meshesByUrdfFilepath = {};
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetKinematicsResponse";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "format", kind: "enum", T: proto3.getEnumType(KinematicsFileFormat) },
        { no: 2, name: "kinematics_data", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
        { no: 3, name: "meshes_by_urdf_filepath", kind: "map", K: 9 /* ScalarType.STRING */, V: { kind: "message", T: Mesh } },
    ]);
    static fromBinary(bytes, options) {
        return new GetKinematicsResponse().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetKinematicsResponse().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetKinematicsResponse().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetKinematicsResponse, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GetGeometriesRequest
 */
export class GetGeometriesRequest extends Message {
    /**
     * The component name
     *
     * @generated from field: string name = 1;
     */
    name = "";
    /**
     * Additional arguments to the method
     *
     * @generated from field: google.protobuf.Struct extra = 99;
     */
    extra;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetGeometriesRequest";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 99, name: "extra", kind: "message", T: Struct },
    ]);
    static fromBinary(bytes, options) {
        return new GetGeometriesRequest().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetGeometriesRequest().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetGeometriesRequest().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetGeometriesRequest, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GetGeometriesResponse
 */
export class GetGeometriesResponse extends Message {
    /**
     * All geometries associated with the component, in their current configuration, in the frame of that component.
     *
     * @generated from field: repeated viam.common.v1.Geometry geometries = 1;
     */
    geometries = [];
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetGeometriesResponse";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "geometries", kind: "message", T: Geometry, repeated: true },
    ]);
    static fromBinary(bytes, options) {
        return new GetGeometriesResponse().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetGeometriesResponse().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetGeometriesResponse().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetGeometriesResponse, a, b);
    }
}
/**
 * @generated from message viam.common.v1.Get3DModelsRequest
 */
export class Get3DModelsRequest extends Message {
    /**
     * The component name
     *
     * @generated from field: string name = 1;
     */
    name = "";
    /**
     * Additional arguments to the method
     *
     * @generated from field: google.protobuf.Struct extra = 99;
     */
    extra;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Get3DModelsRequest";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 99, name: "extra", kind: "message", T: Struct },
    ]);
    static fromBinary(bytes, options) {
        return new Get3DModelsRequest().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Get3DModelsRequest().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Get3DModelsRequest().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Get3DModelsRequest, a, b);
    }
}
/**
 * @generated from message viam.common.v1.Get3DModelsResponse
 */
export class Get3DModelsResponse extends Message {
    /**
     * the 3D models associated with the component
     *
     * @generated from field: map<string, viam.common.v1.Mesh> models = 1;
     */
    models = {};
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.Get3DModelsResponse";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "models", kind: "map", K: 9 /* ScalarType.STRING */, V: { kind: "message", T: Mesh } },
    ]);
    static fromBinary(bytes, options) {
        return new Get3DModelsResponse().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Get3DModelsResponse().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Get3DModelsResponse().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Get3DModelsResponse, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GetWorldPoseResponse
 */
export class GetWorldPoseResponse extends Message {
    /**
     * Pose of the component in the world reference frame
     *
     * @generated from field: viam.common.v1.Pose pose = 1;
     */
    pose;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetWorldPoseResponse";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "pose", kind: "message", T: Pose },
    ]);
    static fromBinary(bytes, options) {
        return new GetWorldPoseResponse().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetWorldPoseResponse().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetWorldPoseResponse().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetWorldPoseResponse, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GetReadingsRequest
 */
export class GetReadingsRequest extends Message {
    /**
     * Name of a sensor
     *
     * @generated from field: string name = 1;
     */
    name = "";
    /**
     * Additional arguments to the method
     *
     * @generated from field: google.protobuf.Struct extra = 99;
     */
    extra;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetReadingsRequest";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 99, name: "extra", kind: "message", T: Struct },
    ]);
    static fromBinary(bytes, options) {
        return new GetReadingsRequest().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetReadingsRequest().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetReadingsRequest().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetReadingsRequest, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GetReadingsResponse
 */
export class GetReadingsResponse extends Message {
    /**
     * @generated from field: map<string, google.protobuf.Value> readings = 1;
     */
    readings = {};
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetReadingsResponse";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "readings", kind: "map", K: 9 /* ScalarType.STRING */, V: { kind: "message", T: Value } },
    ]);
    static fromBinary(bytes, options) {
        return new GetReadingsResponse().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetReadingsResponse().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetReadingsResponse().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetReadingsResponse, a, b);
    }
}
/**
 * @generated from message viam.common.v1.LogEntry
 */
export class LogEntry extends Message {
    /**
     * @generated from field: string host = 1;
     */
    host = "";
    /**
     * @generated from field: string level = 2;
     */
    level = "";
    /**
     * @generated from field: google.protobuf.Timestamp time = 3;
     */
    time;
    /**
     * @generated from field: string logger_name = 4;
     */
    loggerName = "";
    /**
     * @generated from field: string message = 5;
     */
    message = "";
    /**
     * @generated from field: google.protobuf.Struct caller = 6;
     */
    caller;
    /**
     * @generated from field: string stack = 7;
     */
    stack = "";
    /**
     * @generated from field: repeated google.protobuf.Struct fields = 8;
     */
    fields = [];
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.LogEntry";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "host", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "level", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 3, name: "time", kind: "message", T: Timestamp },
        { no: 4, name: "logger_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 5, name: "message", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 6, name: "caller", kind: "message", T: Struct },
        { no: 7, name: "stack", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 8, name: "fields", kind: "message", T: Struct, repeated: true },
    ]);
    static fromBinary(bytes, options) {
        return new LogEntry().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new LogEntry().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new LogEntry().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(LogEntry, a, b);
    }
}
/**
 * Information about an audio stream or device.
 *
 * @generated from message viam.common.v1.AudioInfo
 */
export class AudioInfo extends Message {
    /**
     * Audio codec used for the stream or device (e.g., "pcm16", "pcm32float", "mp3")
     *
     * @generated from field: string codec = 1;
     */
    codec = "";
    /**
     * Sample rate of the audio in Hz
     *
     * @generated from field: int32 sample_rate_hz = 2;
     */
    sampleRateHz = 0;
    /**
     * Number of audio channels in the recording or playback
     *
     * @generated from field: int32 num_channels = 3;
     */
    numChannels = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.AudioInfo";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "codec", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "sample_rate_hz", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
        { no: 3, name: "num_channels", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
    ]);
    static fromBinary(bytes, options) {
        return new AudioInfo().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new AudioInfo().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new AudioInfo().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(AudioInfo, a, b);
    }
}
/**
 * Shared properties for AudioIn and AudioOut components.
 *
 * @generated from message viam.common.v1.GetPropertiesRequest
 */
export class GetPropertiesRequest extends Message {
    /**
     * @generated from field: string name = 1;
     */
    name = "";
    /**
     * @generated from field: google.protobuf.Struct extra = 99;
     */
    extra;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetPropertiesRequest";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 99, name: "extra", kind: "message", T: Struct },
    ]);
    static fromBinary(bytes, options) {
        return new GetPropertiesRequest().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetPropertiesRequest().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetPropertiesRequest().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetPropertiesRequest, a, b);
    }
}
/**
 * @generated from message viam.common.v1.GetPropertiesResponse
 */
export class GetPropertiesResponse extends Message {
    /**
     * List of audio codecs supported by the system (e.g., "mp3", "pcm16", "pcm32float")
     *
     * @generated from field: repeated string supported_codecs = 1;
     */
    supportedCodecs = [];
    /**
     * current sample rate in Hz
     *
     * @generated from field: int32 sample_rate_hz = 2;
     */
    sampleRateHz = 0;
    /**
     * Maximum number of audio channels supported (e.g., 1 for mono, 2 for stereo)
     *
     * @generated from field: int32 num_channels = 3;
     */
    numChannels = 0;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "viam.common.v1.GetPropertiesResponse";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "supported_codecs", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
        { no: 2, name: "sample_rate_hz", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
        { no: 3, name: "num_channels", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
    ]);
    static fromBinary(bytes, options) {
        return new GetPropertiesResponse().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new GetPropertiesResponse().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new GetPropertiesResponse().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(GetPropertiesResponse, a, b);
    }
}
/**
 * safety_heartbeat_monitored is used on methods to signify that if a session is in use
 * and the session was the last to call this method, the resource associated with the
 * method will be stopped.
 *
 * @generated from extension: optional bool safety_heartbeat_monitored = 84260;
 */
export const safety_heartbeat_monitored = proto3.makeExtension("viam.common.v1.safety_heartbeat_monitored", MethodOptions, { no: 84260, kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true });
