import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
import { Vector3 } from "../../common/v1/common_pb";
/**
 * @generated from enum draw.v1.RenderArmModels
 */
export declare enum RenderArmModels {
    /**
     * @generated from enum value: RENDER_ARM_MODELS_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from enum value: RENDER_ARM_MODELS_COLLIDERS = 1;
     */
    COLLIDERS = 1,
    /**
     * @generated from enum value: RENDER_ARM_MODELS_COLLIDERS_AND_MODEL = 2;
     */
    COLLIDERS_AND_MODEL = 2,
    /**
     * @generated from enum value: RENDER_ARM_MODELS_MODEL = 3;
     */
    MODEL = 3
}
/**
 * @generated from enum draw.v1.RenderShapes
 */
export declare enum RenderShapes {
    /**
     * @generated from enum value: RENDER_SHAPES_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from enum value: RENDER_SHAPES_ARROWS = 1;
     */
    ARROWS = 1,
    /**
     * @generated from enum value: RENDER_SHAPES_LINES = 2;
     */
    LINES = 2,
    /**
     * @generated from enum value: RENDER_SHAPES_POINTS = 3;
     */
    POINTS = 3,
    /**
     * @generated from enum value: RENDER_SHAPES_MODEL = 4;
     */
    MODEL = 4,
    /**
     * @generated from enum value: RENDER_SHAPES_NURBS = 5;
     */
    NURBS = 5
}
/**
 * @generated from message draw.v1.OrthographicCamera
 */
export declare class OrthographicCamera extends Message<OrthographicCamera> {
    /**
     * for orthographic camera props
     *
     * @generated from field: optional float zoom = 1;
     */
    zoom?: number;
    constructor(data?: PartialMessage<OrthographicCamera>);
    static readonly runtime: typeof proto3;
    static readonly typeName = "draw.v1.OrthographicCamera";
    static readonly fields: FieldList;
    static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OrthographicCamera;
    static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OrthographicCamera;
    static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OrthographicCamera;
    static equals(a: OrthographicCamera | PlainMessage<OrthographicCamera> | undefined, b: OrthographicCamera | PlainMessage<OrthographicCamera> | undefined): boolean;
}
/**
 * for perspective camera props
 *
 * @generated from message draw.v1.PerspectiveCamera
 */
export declare class PerspectiveCamera extends Message<PerspectiveCamera> {
    constructor(data?: PartialMessage<PerspectiveCamera>);
    static readonly runtime: typeof proto3;
    static readonly typeName = "draw.v1.PerspectiveCamera";
    static readonly fields: FieldList;
    static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PerspectiveCamera;
    static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PerspectiveCamera;
    static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PerspectiveCamera;
    static equals(a: PerspectiveCamera | PlainMessage<PerspectiveCamera> | undefined, b: PerspectiveCamera | PlainMessage<PerspectiveCamera> | undefined): boolean;
}
/**
 * @generated from message draw.v1.SceneCamera
 */
export declare class SceneCamera extends Message<SceneCamera> {
    /**
     * The position of the camera in millimeters
     * defaults to [0, 0, 3000]
     *
     * @generated from field: viam.common.v1.Vector3 position = 1;
     */
    position?: Vector3;
    /**
     * The look at point of the camera in millimeters
     * defaults to [0, 0, 0]
     *
     * @generated from field: viam.common.v1.Vector3 look_at = 2;
     */
    lookAt?: Vector3;
    /**
     * Whether to animate camera movement
     * defaults to false
     *
     * @generated from field: optional bool animated = 3;
     */
    animated?: boolean;
    /**
     * The camera type
     * defaults to perspective_camera
     *
     * @generated from oneof draw.v1.SceneCamera.camera_type
     */
    cameraType: {
        /**
         * @generated from field: draw.v1.PerspectiveCamera perspective_camera = 4;
         */
        value: PerspectiveCamera;
        case: "perspectiveCamera";
    } | {
        /**
         * @generated from field: draw.v1.OrthographicCamera orthographic_camera = 5;
         */
        value: OrthographicCamera;
        case: "orthographicCamera";
    } | {
        case: undefined;
        value?: undefined;
    };
    constructor(data?: PartialMessage<SceneCamera>);
    static readonly runtime: typeof proto3;
    static readonly typeName = "draw.v1.SceneCamera";
    static readonly fields: FieldList;
    static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SceneCamera;
    static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SceneCamera;
    static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SceneCamera;
    static equals(a: SceneCamera | PlainMessage<SceneCamera> | undefined, b: SceneCamera | PlainMessage<SceneCamera> | undefined): boolean;
}
/**
 * @generated from message draw.v1.SceneMetadata
 */
export declare class SceneMetadata extends Message<SceneMetadata> {
    /**
     * The camera to use for the scene
     * defaults to a perspective_camera with a position of [3000, 3000, 3000] and
     * a look_at of [0, 0, 0]
     *
     * @generated from field: optional draw.v1.SceneCamera scene_camera = 1;
     */
    sceneCamera?: SceneCamera;
    /**
     * Whether to render the grid
     * defaults to true
     *
     * @generated from field: optional bool grid = 2;
     */
    grid?: boolean;
    /**
     * The size of the grid cells
     * defaults to 500 (millimeters)
     *
     * @generated from field: optional float grid_cell_size = 3;
     */
    gridCellSize?: number;
    /**
     * The size of the grid sections
     * defaults to 10000 (millimeters)
     *
     * @generated from field: optional float grid_section_size = 4;
     */
    gridSectionSize?: number;
    /**
     * The fade distance of the grid
     * defaults to 25000 (millimeters)
     *
     * @generated from field: optional float grid_fade_distance = 5;
     */
    gridFadeDistance?: number;
    /**
     * The size of points if not defined by a transform's metadata
     * defaults to 10 (millimeters)
     *
     * @generated from field: optional float point_size = 6;
     */
    pointSize?: number;
    /**
     * The color of the points if not defined by a transform's metadata
     * defaults to [51, 51, 51] (gray)
     *
     * @generated from field: optional bytes point_color = 7;
     */
    pointColor?: Uint8Array;
    /**
     * The width of the lines if not defined by a transform's metadata
     * defaults to 5mm
     *
     * @generated from field: optional float line_width = 8;
     */
    lineWidth?: number;
    /**
     * The size of the dots of the lines if not defined by a transform's
     * metadata defaults to 10mm
     *
     * @generated from field: optional float line_dot_size = 9;
     */
    lineDotSize?: number;
    /**
     * The models to render
     * defaults to COLLIDERS_AND_MODEL
     *
     * @generated from field: optional draw.v1.RenderArmModels render_arm_models = 10;
     */
    renderArmModels?: RenderArmModels;
    /**
     * The shapes to render
     * defaults to [ARROWS, POINTS, LINES, MODEL, NURBS]
     *
     * @generated from field: repeated draw.v1.RenderShapes render_shapes = 11;
     */
    renderShapes: RenderShapes[];
    constructor(data?: PartialMessage<SceneMetadata>);
    static readonly runtime: typeof proto3;
    static readonly typeName = "draw.v1.SceneMetadata";
    static readonly fields: FieldList;
    static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SceneMetadata;
    static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SceneMetadata;
    static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SceneMetadata;
    static equals(a: SceneMetadata | PlainMessage<SceneMetadata> | undefined, b: SceneMetadata | PlainMessage<SceneMetadata> | undefined): boolean;
}
