import { SE3Pose, Vec3 } from "./geometry";
import { SE3Trajectory } from "./trajectory";
import { ArmJointPosition } from "./arm_command";
import { ClawGripperCommand_Request } from "./gripper_command";
import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "bosdyn.api";
/**
 * ArmSurfaceContact lets you accurately move the robot's arm in the world while having some ability
 * to perform force control.  This mode is useful for drawing, wiping, and other similar behaviors.
 *
 * The message is similar to the ArmCartesianCommand message, which you can look at for additional
 * details.
 */
export interface ArmSurfaceContact {
}
export interface ArmSurfaceContact_Request {
    /**
     * The root frame is used to set the optional task frame that all trajectories are
     * specified with respect to.  If the optional task frame is left un-specified it defaults
     * to the identity transform and the root frame becomes the task frame.
     */
    rootFrameName: string;
    /**
     * The tool pose relative to the parent link (wrist).
     * Defaults to
     *    [0.19557 0 0]
     *    [1 0 0 0]
     * a frame with it's origin slightly in front of the gripper's palm plate aligned with wrists orientation.
     */
    wristTformTool: SE3Pose | undefined;
    /**
     * The fields below are specified in this optional task frame.  If unset int defaults
     * to the identity transform and all quantities are therefore expressed in the root_frame_name.
     */
    rootTformTask: SE3Pose | undefined;
    /**
     * A 3D pose trajectory for the tool expressed in the task frame, e.g. task_T_tool.
     * This pose trajectory is optional if requesting a pure wrench at the end-effector,
     * otherwise required for position or mixed force/position end-effector requests.
     */
    poseTrajectoryInTask: SE3Trajectory | undefined;
    /**
     * Optional Maximum acceleration magnitude of the end-effector.
     * Valid ranges (0, 20]
     */
    maximumAcceleration: number | undefined;
    /** Optional Maximum linear velocity magnitude of the end-effector. (m/s) */
    maxLinearVelocity: number | undefined;
    /** Optional Maximum angular velocity magnitude of the end-effector. (rad/s) */
    maxAngularVelocity: number | undefined;
    /**
     * Maximum allowable tracking error of the tool frame from the desired trajectory
     * before the arm will stop moving and cancel the rest of the trajectory. When this limit is exceeded, the
     * hand will stay at the pose it was at when it exceeded the tracking error, and any other part of the
     * trajectory specified in the rest of this message will be ignored.
     * max position tracking error in meters
     */
    maxPosTrackingError: number | undefined;
    /** max orientation tracking error in radians */
    maxRotTrackingError: number | undefined;
    forceRemainNearCurrentJointConfiguration: boolean | undefined;
    preferredJointConfiguration: ArmJointPosition | undefined;
    xAxis: ArmSurfaceContact_Request_AxisMode;
    yAxis: ArmSurfaceContact_Request_AxisMode;
    zAxis: ArmSurfaceContact_Request_AxisMode;
    /**
     * Amount of force to use on each axis, from 0 (no force) to 1.0 (maximum force), can also
     * be negative.  Full range: [-1.0, 1.0]
     */
    pressForcePercentage: Vec3 | undefined;
    /** Admittance settings for each axis in the admittance frame. */
    xyAdmittance: ArmSurfaceContact_Request_AdmittanceSetting;
    zAdmittance: ArmSurfaceContact_Request_AdmittanceSetting;
    /**
     * Cross term, making force in the XY axis cause movement in the z-axis.
     * By default is OFF
     * Setting this value will make the arm move in the negative Z-axis whenever it feels force in
     * the XY axis.
     */
    xyToZCrossTermAdmittance: ArmSurfaceContact_Request_AdmittanceSetting;
    /**
     * Specifies a force that the body should expect to feel.  This allows the robot to "lean into"
     * an external force.  Be careful using this field, because if you lie to the robot, it can
     * fall over.
     */
    biasForceEwrtBody: Vec3 | undefined;
    /** Gripper control */
    gripperCommand: ClawGripperCommand_Request | undefined;
    /** Set to true to have robot is walk around to follow the hand. */
    isRobotFollowingHand: boolean;
}
/**
 * If an axis is set to position mode (default), read desired from SE3Trajectory command.
 * If mode is set to force, use the "press_force_percentage" field to determine force.
 */
export declare enum ArmSurfaceContact_Request_AxisMode {
    AXIS_MODE_POSITION = 0,
    AXIS_MODE_FORCE = 1,
    UNRECOGNIZED = -1
}
export declare function armSurfaceContact_Request_AxisModeFromJSON(object: any): ArmSurfaceContact_Request_AxisMode;
export declare function armSurfaceContact_Request_AxisModeToJSON(object: ArmSurfaceContact_Request_AxisMode): string;
/**
 * Parameters for controlling admittance.  By default, the robot will
 * stop moving the arm when it encounters resistance.  You can control that reaction to
 * make the robot stiffer or less stiff by changing the parameters.
 */
export declare enum ArmSurfaceContact_Request_AdmittanceSetting {
    ADMITTANCE_SETTING_UNKNOWN = 0,
    /** ADMITTANCE_SETTING_OFF - No admittance. */
    ADMITTANCE_SETTING_OFF = 1,
    /** ADMITTANCE_SETTING_NORMAL - Normal reaction to touching things in the world */
    ADMITTANCE_SETTING_NORMAL = 2,
    /** ADMITTANCE_SETTING_LOOSE - Robot will not push very hard against objects */
    ADMITTANCE_SETTING_LOOSE = 3,
    /** ADMITTANCE_SETTING_STIFF - Robot will push hard against the world */
    ADMITTANCE_SETTING_STIFF = 4,
    /** ADMITTANCE_SETTING_VERY_STIFF - Robot will push very hard against the world */
    ADMITTANCE_SETTING_VERY_STIFF = 5,
    UNRECOGNIZED = -1
}
export declare function armSurfaceContact_Request_AdmittanceSettingFromJSON(object: any): ArmSurfaceContact_Request_AdmittanceSetting;
export declare function armSurfaceContact_Request_AdmittanceSettingToJSON(object: ArmSurfaceContact_Request_AdmittanceSetting): string;
export interface ArmSurfaceContact_Feedback {
}
export declare const ArmSurfaceContact: {
    encode(_: ArmSurfaceContact, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ArmSurfaceContact;
    fromJSON(_: any): ArmSurfaceContact;
    toJSON(_: ArmSurfaceContact): unknown;
    fromPartial<I extends {} & {} & { [K in Exclude<keyof I, never>]: never; }>(_: I): ArmSurfaceContact;
};
export declare const ArmSurfaceContact_Request: {
    encode(message: ArmSurfaceContact_Request, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ArmSurfaceContact_Request;
    fromJSON(object: any): ArmSurfaceContact_Request;
    toJSON(message: ArmSurfaceContact_Request): unknown;
    fromPartial<I extends {
        rootFrameName?: string | undefined;
        wristTformTool?: {
            position?: {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
            } | undefined;
            rotation?: {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
                w?: number | undefined;
            } | undefined;
        } | undefined;
        rootTformTask?: {
            position?: {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
            } | undefined;
            rotation?: {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
                w?: number | undefined;
            } | undefined;
        } | undefined;
        poseTrajectoryInTask?: {
            points?: {
                pose?: {
                    position?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    rotation?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                        w?: number | undefined;
                    } | undefined;
                } | undefined;
                velocity?: {
                    linear?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    angular?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                } | undefined;
                timeSinceReference?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
            }[] | undefined;
            referenceTime?: Date | undefined;
            posInterpolation?: import("./trajectory").PositionalInterpolation | undefined;
            angInterpolation?: import("./trajectory").AngularInterpolation | undefined;
        } | undefined;
        maximumAcceleration?: number | undefined;
        maxLinearVelocity?: number | undefined;
        maxAngularVelocity?: number | undefined;
        maxPosTrackingError?: number | undefined;
        maxRotTrackingError?: number | undefined;
        forceRemainNearCurrentJointConfiguration?: boolean | undefined;
        preferredJointConfiguration?: {
            sh0?: number | undefined;
            sh1?: number | undefined;
            el0?: number | undefined;
            el1?: number | undefined;
            wr0?: number | undefined;
            wr1?: number | undefined;
        } | undefined;
        xAxis?: ArmSurfaceContact_Request_AxisMode | undefined;
        yAxis?: ArmSurfaceContact_Request_AxisMode | undefined;
        zAxis?: ArmSurfaceContact_Request_AxisMode | undefined;
        pressForcePercentage?: {
            x?: number | undefined;
            y?: number | undefined;
            z?: number | undefined;
        } | undefined;
        xyAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined;
        zAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined;
        xyToZCrossTermAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined;
        biasForceEwrtBody?: {
            x?: number | undefined;
            y?: number | undefined;
            z?: number | undefined;
        } | undefined;
        gripperCommand?: {
            trajectory?: {
                points?: {
                    point?: number | undefined;
                    velocity?: number | undefined;
                    timeSinceReference?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                }[] | undefined;
                referenceTime?: Date | undefined;
                interpolation?: import("./trajectory").PositionalInterpolation | undefined;
            } | undefined;
            maximumOpenCloseVelocity?: number | undefined;
            maximumOpenCloseAcceleration?: number | undefined;
            maximumTorque?: number | undefined;
            disableForceOnContact?: boolean | undefined;
        } | undefined;
        isRobotFollowingHand?: boolean | undefined;
    } & {
        rootFrameName?: string | undefined;
        wristTformTool?: ({
            position?: {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
            } | undefined;
            rotation?: {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
                w?: number | undefined;
            } | undefined;
        } & {
            position?: ({
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
            } & {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
            } & { [K in Exclude<keyof I["wristTformTool"]["position"], keyof Vec3>]: never; }) | undefined;
            rotation?: ({
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
                w?: number | undefined;
            } & {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
                w?: number | undefined;
            } & { [K_1 in Exclude<keyof I["wristTformTool"]["rotation"], keyof import("./geometry").Quaternion>]: never; }) | undefined;
        } & { [K_2 in Exclude<keyof I["wristTformTool"], keyof SE3Pose>]: never; }) | undefined;
        rootTformTask?: ({
            position?: {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
            } | undefined;
            rotation?: {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
                w?: number | undefined;
            } | undefined;
        } & {
            position?: ({
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
            } & {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
            } & { [K_3 in Exclude<keyof I["rootTformTask"]["position"], keyof Vec3>]: never; }) | undefined;
            rotation?: ({
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
                w?: number | undefined;
            } & {
                x?: number | undefined;
                y?: number | undefined;
                z?: number | undefined;
                w?: number | undefined;
            } & { [K_4 in Exclude<keyof I["rootTformTask"]["rotation"], keyof import("./geometry").Quaternion>]: never; }) | undefined;
        } & { [K_5 in Exclude<keyof I["rootTformTask"], keyof SE3Pose>]: never; }) | undefined;
        poseTrajectoryInTask?: ({
            points?: {
                pose?: {
                    position?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    rotation?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                        w?: number | undefined;
                    } | undefined;
                } | undefined;
                velocity?: {
                    linear?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    angular?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                } | undefined;
                timeSinceReference?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
            }[] | undefined;
            referenceTime?: Date | undefined;
            posInterpolation?: import("./trajectory").PositionalInterpolation | undefined;
            angInterpolation?: import("./trajectory").AngularInterpolation | undefined;
        } & {
            points?: ({
                pose?: {
                    position?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    rotation?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                        w?: number | undefined;
                    } | undefined;
                } | undefined;
                velocity?: {
                    linear?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    angular?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                } | undefined;
                timeSinceReference?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
            }[] & ({
                pose?: {
                    position?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    rotation?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                        w?: number | undefined;
                    } | undefined;
                } | undefined;
                velocity?: {
                    linear?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    angular?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                } | undefined;
                timeSinceReference?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
            } & {
                pose?: ({
                    position?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    rotation?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                        w?: number | undefined;
                    } | undefined;
                } & {
                    position?: ({
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } & {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } & { [K_6 in Exclude<keyof I["poseTrajectoryInTask"]["points"][number]["pose"]["position"], keyof Vec3>]: never; }) | undefined;
                    rotation?: ({
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                        w?: number | undefined;
                    } & {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                        w?: number | undefined;
                    } & { [K_7 in Exclude<keyof I["poseTrajectoryInTask"]["points"][number]["pose"]["rotation"], keyof import("./geometry").Quaternion>]: never; }) | undefined;
                } & { [K_8 in Exclude<keyof I["poseTrajectoryInTask"]["points"][number]["pose"], keyof SE3Pose>]: never; }) | undefined;
                velocity?: ({
                    linear?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    angular?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                } & {
                    linear?: ({
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } & {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } & { [K_9 in Exclude<keyof I["poseTrajectoryInTask"]["points"][number]["velocity"]["linear"], keyof Vec3>]: never; }) | undefined;
                    angular?: ({
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } & {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } & { [K_10 in Exclude<keyof I["poseTrajectoryInTask"]["points"][number]["velocity"]["angular"], keyof Vec3>]: never; }) | undefined;
                } & { [K_11 in Exclude<keyof I["poseTrajectoryInTask"]["points"][number]["velocity"], keyof import("./geometry").SE3Velocity>]: never; }) | undefined;
                timeSinceReference?: ({
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & { [K_12 in Exclude<keyof I["poseTrajectoryInTask"]["points"][number]["timeSinceReference"], keyof import("../../google/protobuf/duration").Duration>]: never; }) | undefined;
            } & { [K_13 in Exclude<keyof I["poseTrajectoryInTask"]["points"][number], keyof import("./trajectory").SE3TrajectoryPoint>]: never; })[] & { [K_14 in Exclude<keyof I["poseTrajectoryInTask"]["points"], keyof {
                pose?: {
                    position?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    rotation?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                        w?: number | undefined;
                    } | undefined;
                } | undefined;
                velocity?: {
                    linear?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                    angular?: {
                        x?: number | undefined;
                        y?: number | undefined;
                        z?: number | undefined;
                    } | undefined;
                } | undefined;
                timeSinceReference?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
            }[]>]: never; }) | undefined;
            referenceTime?: Date | undefined;
            posInterpolation?: import("./trajectory").PositionalInterpolation | undefined;
            angInterpolation?: import("./trajectory").AngularInterpolation | undefined;
        } & { [K_15 in Exclude<keyof I["poseTrajectoryInTask"], keyof SE3Trajectory>]: never; }) | undefined;
        maximumAcceleration?: number | undefined;
        maxLinearVelocity?: number | undefined;
        maxAngularVelocity?: number | undefined;
        maxPosTrackingError?: number | undefined;
        maxRotTrackingError?: number | undefined;
        forceRemainNearCurrentJointConfiguration?: boolean | undefined;
        preferredJointConfiguration?: ({
            sh0?: number | undefined;
            sh1?: number | undefined;
            el0?: number | undefined;
            el1?: number | undefined;
            wr0?: number | undefined;
            wr1?: number | undefined;
        } & {
            sh0?: number | undefined;
            sh1?: number | undefined;
            el0?: number | undefined;
            el1?: number | undefined;
            wr0?: number | undefined;
            wr1?: number | undefined;
        } & { [K_16 in Exclude<keyof I["preferredJointConfiguration"], keyof ArmJointPosition>]: never; }) | undefined;
        xAxis?: ArmSurfaceContact_Request_AxisMode | undefined;
        yAxis?: ArmSurfaceContact_Request_AxisMode | undefined;
        zAxis?: ArmSurfaceContact_Request_AxisMode | undefined;
        pressForcePercentage?: ({
            x?: number | undefined;
            y?: number | undefined;
            z?: number | undefined;
        } & {
            x?: number | undefined;
            y?: number | undefined;
            z?: number | undefined;
        } & { [K_17 in Exclude<keyof I["pressForcePercentage"], keyof Vec3>]: never; }) | undefined;
        xyAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined;
        zAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined;
        xyToZCrossTermAdmittance?: ArmSurfaceContact_Request_AdmittanceSetting | undefined;
        biasForceEwrtBody?: ({
            x?: number | undefined;
            y?: number | undefined;
            z?: number | undefined;
        } & {
            x?: number | undefined;
            y?: number | undefined;
            z?: number | undefined;
        } & { [K_18 in Exclude<keyof I["biasForceEwrtBody"], keyof Vec3>]: never; }) | undefined;
        gripperCommand?: ({
            trajectory?: {
                points?: {
                    point?: number | undefined;
                    velocity?: number | undefined;
                    timeSinceReference?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                }[] | undefined;
                referenceTime?: Date | undefined;
                interpolation?: import("./trajectory").PositionalInterpolation | undefined;
            } | undefined;
            maximumOpenCloseVelocity?: number | undefined;
            maximumOpenCloseAcceleration?: number | undefined;
            maximumTorque?: number | undefined;
            disableForceOnContact?: boolean | undefined;
        } & {
            trajectory?: ({
                points?: {
                    point?: number | undefined;
                    velocity?: number | undefined;
                    timeSinceReference?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                }[] | undefined;
                referenceTime?: Date | undefined;
                interpolation?: import("./trajectory").PositionalInterpolation | undefined;
            } & {
                points?: ({
                    point?: number | undefined;
                    velocity?: number | undefined;
                    timeSinceReference?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                }[] & ({
                    point?: number | undefined;
                    velocity?: number | undefined;
                    timeSinceReference?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                } & {
                    point?: number | undefined;
                    velocity?: number | undefined;
                    timeSinceReference?: ({
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } & {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } & { [K_19 in Exclude<keyof I["gripperCommand"]["trajectory"]["points"][number]["timeSinceReference"], keyof import("../../google/protobuf/duration").Duration>]: never; }) | undefined;
                } & { [K_20 in Exclude<keyof I["gripperCommand"]["trajectory"]["points"][number], keyof import("./trajectory").ScalarTrajectoryPoint>]: never; })[] & { [K_21 in Exclude<keyof I["gripperCommand"]["trajectory"]["points"], keyof {
                    point?: number | undefined;
                    velocity?: number | undefined;
                    timeSinceReference?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                }[]>]: never; }) | undefined;
                referenceTime?: Date | undefined;
                interpolation?: import("./trajectory").PositionalInterpolation | undefined;
            } & { [K_22 in Exclude<keyof I["gripperCommand"]["trajectory"], keyof import("./trajectory").ScalarTrajectory>]: never; }) | undefined;
            maximumOpenCloseVelocity?: number | undefined;
            maximumOpenCloseAcceleration?: number | undefined;
            maximumTorque?: number | undefined;
            disableForceOnContact?: boolean | undefined;
        } & { [K_23 in Exclude<keyof I["gripperCommand"], keyof ClawGripperCommand_Request>]: never; }) | undefined;
        isRobotFollowingHand?: boolean | undefined;
    } & { [K_24 in Exclude<keyof I, keyof ArmSurfaceContact_Request>]: never; }>(object: I): ArmSurfaceContact_Request;
};
export declare const ArmSurfaceContact_Feedback: {
    encode(_: ArmSurfaceContact_Feedback, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ArmSurfaceContact_Feedback;
    fromJSON(_: any): ArmSurfaceContact_Feedback;
    toJSON(_: ArmSurfaceContact_Feedback): unknown;
    fromPartial<I extends {} & {} & { [K in Exclude<keyof I, never>]: never; }>(_: I): ArmSurfaceContact_Feedback;
};
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
export declare type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export {};
//# sourceMappingURL=arm_surface_contact.d.ts.map