// Copyright (c) 2018 Anki, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License in the file LICENSE.txt or at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// External interface for robot <-> app and robot <-> sdk communication

// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.5.1
// - protoc             v6.31.1
// source: external_interface.proto

package Anki_Vector_external_interface

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.64.0 or later.
const _ = grpc.SupportPackageIsVersion9

const (
	ExternalInterface_ProtocolVersion_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/ProtocolVersion"
	ExternalInterface_SDKInitialization_FullMethodName           = "/Anki.Vector.external_interface.ExternalInterface/SDKInitialization"
	ExternalInterface_DriveWheels_FullMethodName                 = "/Anki.Vector.external_interface.ExternalInterface/DriveWheels"
	ExternalInterface_PlayAnimationTrigger_FullMethodName        = "/Anki.Vector.external_interface.ExternalInterface/PlayAnimationTrigger"
	ExternalInterface_PlayAnimation_FullMethodName               = "/Anki.Vector.external_interface.ExternalInterface/PlayAnimation"
	ExternalInterface_ListAnimations_FullMethodName              = "/Anki.Vector.external_interface.ExternalInterface/ListAnimations"
	ExternalInterface_ListAnimationTriggers_FullMethodName       = "/Anki.Vector.external_interface.ExternalInterface/ListAnimationTriggers"
	ExternalInterface_MoveHead_FullMethodName                    = "/Anki.Vector.external_interface.ExternalInterface/MoveHead"
	ExternalInterface_MoveLift_FullMethodName                    = "/Anki.Vector.external_interface.ExternalInterface/MoveLift"
	ExternalInterface_StopAllMotors_FullMethodName               = "/Anki.Vector.external_interface.ExternalInterface/StopAllMotors"
	ExternalInterface_DisplayFaceImageRGB_FullMethodName         = "/Anki.Vector.external_interface.ExternalInterface/DisplayFaceImageRGB"
	ExternalInterface_EventStream_FullMethodName                 = "/Anki.Vector.external_interface.ExternalInterface/EventStream"
	ExternalInterface_ExternalAudioStreamPlayback_FullMethodName = "/Anki.Vector.external_interface.ExternalInterface/ExternalAudioStreamPlayback"
	ExternalInterface_BehaviorControl_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/BehaviorControl"
	ExternalInterface_CancelFaceEnrollment_FullMethodName        = "/Anki.Vector.external_interface.ExternalInterface/CancelFaceEnrollment"
	ExternalInterface_RequestEnrolledNames_FullMethodName        = "/Anki.Vector.external_interface.ExternalInterface/RequestEnrolledNames"
	ExternalInterface_UpdateEnrolledFaceByID_FullMethodName      = "/Anki.Vector.external_interface.ExternalInterface/UpdateEnrolledFaceByID"
	ExternalInterface_EraseEnrolledFaceByID_FullMethodName       = "/Anki.Vector.external_interface.ExternalInterface/EraseEnrolledFaceByID"
	ExternalInterface_EraseAllEnrolledFaces_FullMethodName       = "/Anki.Vector.external_interface.ExternalInterface/EraseAllEnrolledFaces"
	ExternalInterface_SetFaceToEnroll_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/SetFaceToEnroll"
	ExternalInterface_EnrollFace_FullMethodName                  = "/Anki.Vector.external_interface.ExternalInterface/EnrollFace"
	ExternalInterface_EnableMarkerDetection_FullMethodName       = "/Anki.Vector.external_interface.ExternalInterface/EnableMarkerDetection"
	ExternalInterface_EnableFaceDetection_FullMethodName         = "/Anki.Vector.external_interface.ExternalInterface/EnableFaceDetection"
	ExternalInterface_EnableMotionDetection_FullMethodName       = "/Anki.Vector.external_interface.ExternalInterface/EnableMotionDetection"
	ExternalInterface_EnableMirrorMode_FullMethodName            = "/Anki.Vector.external_interface.ExternalInterface/EnableMirrorMode"
	ExternalInterface_EnableImageStreaming_FullMethodName        = "/Anki.Vector.external_interface.ExternalInterface/EnableImageStreaming"
	ExternalInterface_IsImageStreamingEnabled_FullMethodName     = "/Anki.Vector.external_interface.ExternalInterface/IsImageStreamingEnabled"
	ExternalInterface_CancelActionByIdTag_FullMethodName         = "/Anki.Vector.external_interface.ExternalInterface/CancelActionByIdTag"
	ExternalInterface_CancelBehavior_FullMethodName              = "/Anki.Vector.external_interface.ExternalInterface/CancelBehavior"
	ExternalInterface_GoToPose_FullMethodName                    = "/Anki.Vector.external_interface.ExternalInterface/GoToPose"
	ExternalInterface_DockWithCube_FullMethodName                = "/Anki.Vector.external_interface.ExternalInterface/DockWithCube"
	ExternalInterface_DriveOffCharger_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/DriveOffCharger"
	ExternalInterface_DriveOnCharger_FullMethodName              = "/Anki.Vector.external_interface.ExternalInterface/DriveOnCharger"
	ExternalInterface_FindFaces_FullMethodName                   = "/Anki.Vector.external_interface.ExternalInterface/FindFaces"
	ExternalInterface_LookAroundInPlace_FullMethodName           = "/Anki.Vector.external_interface.ExternalInterface/LookAroundInPlace"
	ExternalInterface_RollBlock_FullMethodName                   = "/Anki.Vector.external_interface.ExternalInterface/RollBlock"
	ExternalInterface_PhotosInfo_FullMethodName                  = "/Anki.Vector.external_interface.ExternalInterface/PhotosInfo"
	ExternalInterface_Photo_FullMethodName                       = "/Anki.Vector.external_interface.ExternalInterface/Photo"
	ExternalInterface_Thumbnail_FullMethodName                   = "/Anki.Vector.external_interface.ExternalInterface/Thumbnail"
	ExternalInterface_DeletePhoto_FullMethodName                 = "/Anki.Vector.external_interface.ExternalInterface/DeletePhoto"
	ExternalInterface_DriveStraight_FullMethodName               = "/Anki.Vector.external_interface.ExternalInterface/DriveStraight"
	ExternalInterface_TurnInPlace_FullMethodName                 = "/Anki.Vector.external_interface.ExternalInterface/TurnInPlace"
	ExternalInterface_SetHeadAngle_FullMethodName                = "/Anki.Vector.external_interface.ExternalInterface/SetHeadAngle"
	ExternalInterface_SetLiftHeight_FullMethodName               = "/Anki.Vector.external_interface.ExternalInterface/SetLiftHeight"
	ExternalInterface_TurnTowardsFace_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/TurnTowardsFace"
	ExternalInterface_GoToObject_FullMethodName                  = "/Anki.Vector.external_interface.ExternalInterface/GoToObject"
	ExternalInterface_RollObject_FullMethodName                  = "/Anki.Vector.external_interface.ExternalInterface/RollObject"
	ExternalInterface_PopAWheelie_FullMethodName                 = "/Anki.Vector.external_interface.ExternalInterface/PopAWheelie"
	ExternalInterface_PickupObject_FullMethodName                = "/Anki.Vector.external_interface.ExternalInterface/PickupObject"
	ExternalInterface_PlaceObjectOnGroundHere_FullMethodName     = "/Anki.Vector.external_interface.ExternalInterface/PlaceObjectOnGroundHere"
	ExternalInterface_SetMasterVolume_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/SetMasterVolume"
	ExternalInterface_UserAuthentication_FullMethodName          = "/Anki.Vector.external_interface.ExternalInterface/UserAuthentication"
	ExternalInterface_BatteryState_FullMethodName                = "/Anki.Vector.external_interface.ExternalInterface/BatteryState"
	ExternalInterface_VersionState_FullMethodName                = "/Anki.Vector.external_interface.ExternalInterface/VersionState"
	ExternalInterface_SayText_FullMethodName                     = "/Anki.Vector.external_interface.ExternalInterface/SayText"
	ExternalInterface_ConnectCube_FullMethodName                 = "/Anki.Vector.external_interface.ExternalInterface/ConnectCube"
	ExternalInterface_DisconnectCube_FullMethodName              = "/Anki.Vector.external_interface.ExternalInterface/DisconnectCube"
	ExternalInterface_CubesAvailable_FullMethodName              = "/Anki.Vector.external_interface.ExternalInterface/CubesAvailable"
	ExternalInterface_FlashCubeLights_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/FlashCubeLights"
	ExternalInterface_ForgetPreferredCube_FullMethodName         = "/Anki.Vector.external_interface.ExternalInterface/ForgetPreferredCube"
	ExternalInterface_SetPreferredCube_FullMethodName            = "/Anki.Vector.external_interface.ExternalInterface/SetPreferredCube"
	ExternalInterface_DeleteCustomObjects_FullMethodName         = "/Anki.Vector.external_interface.ExternalInterface/DeleteCustomObjects"
	ExternalInterface_CreateFixedCustomObject_FullMethodName     = "/Anki.Vector.external_interface.ExternalInterface/CreateFixedCustomObject"
	ExternalInterface_DefineCustomObject_FullMethodName          = "/Anki.Vector.external_interface.ExternalInterface/DefineCustomObject"
	ExternalInterface_SetCubeLights_FullMethodName               = "/Anki.Vector.external_interface.ExternalInterface/SetCubeLights"
	ExternalInterface_AudioFeed_FullMethodName                   = "/Anki.Vector.external_interface.ExternalInterface/AudioFeed"
	ExternalInterface_CameraFeed_FullMethodName                  = "/Anki.Vector.external_interface.ExternalInterface/CameraFeed"
	ExternalInterface_CaptureSingleImage_FullMethodName          = "/Anki.Vector.external_interface.ExternalInterface/CaptureSingleImage"
	ExternalInterface_GetCameraConfig_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/GetCameraConfig"
	ExternalInterface_SetEyeColor_FullMethodName                 = "/Anki.Vector.external_interface.ExternalInterface/SetEyeColor"
	ExternalInterface_NavMapFeed_FullMethodName                  = "/Anki.Vector.external_interface.ExternalInterface/NavMapFeed"
	ExternalInterface_SetCameraSettings_FullMethodName           = "/Anki.Vector.external_interface.ExternalInterface/SetCameraSettings"
	ExternalInterface_AppIntent_FullMethodName                   = "/Anki.Vector.external_interface.ExternalInterface/AppIntent"
	ExternalInterface_GetOnboardingState_FullMethodName          = "/Anki.Vector.external_interface.ExternalInterface/GetOnboardingState"
	ExternalInterface_SendOnboardingInput_FullMethodName         = "/Anki.Vector.external_interface.ExternalInterface/SendOnboardingInput"
	ExternalInterface_GetLatestAttentionTransfer_FullMethodName  = "/Anki.Vector.external_interface.ExternalInterface/GetLatestAttentionTransfer"
	ExternalInterface_PullJdocs_FullMethodName                   = "/Anki.Vector.external_interface.ExternalInterface/PullJdocs"
	ExternalInterface_UpdateSettings_FullMethodName              = "/Anki.Vector.external_interface.ExternalInterface/UpdateSettings"
	ExternalInterface_UpdateAccountSettings_FullMethodName       = "/Anki.Vector.external_interface.ExternalInterface/UpdateAccountSettings"
	ExternalInterface_UpdateUserEntitlements_FullMethodName      = "/Anki.Vector.external_interface.ExternalInterface/UpdateUserEntitlements"
	ExternalInterface_StartUpdateEngine_FullMethodName           = "/Anki.Vector.external_interface.ExternalInterface/StartUpdateEngine"
	ExternalInterface_CheckUpdateStatus_FullMethodName           = "/Anki.Vector.external_interface.ExternalInterface/CheckUpdateStatus"
	ExternalInterface_UpdateAndRestart_FullMethodName            = "/Anki.Vector.external_interface.ExternalInterface/UpdateAndRestart"
	ExternalInterface_UploadDebugLogs_FullMethodName             = "/Anki.Vector.external_interface.ExternalInterface/UploadDebugLogs"
	ExternalInterface_CheckCloudConnection_FullMethodName        = "/Anki.Vector.external_interface.ExternalInterface/CheckCloudConnection"
	ExternalInterface_GetFeatureFlag_FullMethodName              = "/Anki.Vector.external_interface.ExternalInterface/GetFeatureFlag"
	ExternalInterface_GetFeatureFlagList_FullMethodName          = "/Anki.Vector.external_interface.ExternalInterface/GetFeatureFlagList"
	ExternalInterface_GetAlexaAuthState_FullMethodName           = "/Anki.Vector.external_interface.ExternalInterface/GetAlexaAuthState"
	ExternalInterface_AlexaOptIn_FullMethodName                  = "/Anki.Vector.external_interface.ExternalInterface/AlexaOptIn"
	ExternalInterface_AssumeBehaviorControl_FullMethodName       = "/Anki.Vector.external_interface.ExternalInterface/AssumeBehaviorControl"
)

// ExternalInterfaceClient is the client API for ExternalInterface service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
//
// The grpc-defined connection between the SDK and Anki's Vector robot.
type ExternalInterfaceClient interface {
	// Checks the supported protocol version by passing in the client version and
	// minimum host version and receiving a response to see whether the versions are supported.
	ProtocolVersion(ctx context.Context, in *ProtocolVersionRequest, opts ...grpc.CallOption) (*ProtocolVersionResponse, error)
	// SDK-only message to pass version info for device OS, Python version, etc.
	SDKInitialization(ctx context.Context, in *SDKInitializationRequest, opts ...grpc.CallOption) (*SDKInitializationResponse, error)
	// Sets the speed and acceleration for Vector's wheel motors.
	DriveWheels(ctx context.Context, in *DriveWheelsRequest, opts ...grpc.CallOption) (*DriveWheelsResponse, error)
	// Requests that Vector play an animation trigger.
	PlayAnimationTrigger(ctx context.Context, in *PlayAnimationTriggerRequest, opts ...grpc.CallOption) (*PlayAnimationResponse, error)
	// Requests that Vector play an animation.
	PlayAnimation(ctx context.Context, in *PlayAnimationRequest, opts ...grpc.CallOption) (*PlayAnimationResponse, error)
	// Constructs and returns a list of animations.
	ListAnimations(ctx context.Context, in *ListAnimationsRequest, opts ...grpc.CallOption) (*ListAnimationsResponse, error)
	// Constructs and returns a list of animation triggers.
	ListAnimationTriggers(ctx context.Context, in *ListAnimationTriggersRequest, opts ...grpc.CallOption) (*ListAnimationTriggersResponse, error)
	// Moves Vector's head.
	MoveHead(ctx context.Context, in *MoveHeadRequest, opts ...grpc.CallOption) (*MoveHeadResponse, error)
	// Moves Vector's lift.
	MoveLift(ctx context.Context, in *MoveLiftRequest, opts ...grpc.CallOption) (*MoveLiftResponse, error)
	// Stop all motor commands requested: MoveHead, MoveLift and DriveWheels.
	StopAllMotors(ctx context.Context, in *StopAllMotorsRequest, opts ...grpc.CallOption) (*StopAllMotorsResponse, error)
	// Sets screen (Vector's face) to a solid color.
	DisplayFaceImageRGB(ctx context.Context, in *DisplayFaceImageRGBRequest, opts ...grpc.CallOption) (*DisplayFaceImageRGBResponse, error)
	// Streaming events endpoint
	EventStream(ctx context.Context, in *EventRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[EventResponse], error)
	// Play audio using Vector's speaker
	ExternalAudioStreamPlayback(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[ExternalAudioStreamRequest, ExternalAudioStreamResponse], error)
	// Integrate with and acquire control of Vector's AI system.
	BehaviorControl(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[BehaviorControlRequest, BehaviorControlResponse], error)
	CancelFaceEnrollment(ctx context.Context, in *CancelFaceEnrollmentRequest, opts ...grpc.CallOption) (*CancelFaceEnrollmentResponse, error)
	// Get a list of names and their IDs.
	RequestEnrolledNames(ctx context.Context, in *RequestEnrolledNamesRequest, opts ...grpc.CallOption) (*RequestEnrolledNamesResponse, error)
	// Update the name enrolled for a given face.
	UpdateEnrolledFaceByID(ctx context.Context, in *UpdateEnrolledFaceByIDRequest, opts ...grpc.CallOption) (*UpdateEnrolledFaceByIDResponse, error)
	// Erase the enrollment (name) record for the face with this ID.
	EraseEnrolledFaceByID(ctx context.Context, in *EraseEnrolledFaceByIDRequest, opts ...grpc.CallOption) (*EraseEnrolledFaceByIDResponse, error)
	// Erase the enrollment (name) records for all faces.
	EraseAllEnrolledFaces(ctx context.Context, in *EraseAllEnrolledFacesRequest, opts ...grpc.CallOption) (*EraseAllEnrolledFacesResponse, error)
	SetFaceToEnroll(ctx context.Context, in *SetFaceToEnrollRequest, opts ...grpc.CallOption) (*SetFaceToEnrollResponse, error)
	// Enroll a face. Must be used with SetFaceToEnroll
	EnrollFace(ctx context.Context, in *EnrollFaceRequest, opts ...grpc.CallOption) (*EnrollFaceResponse, error)
	EnableMarkerDetection(ctx context.Context, in *EnableMarkerDetectionRequest, opts ...grpc.CallOption) (*EnableMarkerDetectionResponse, error)
	EnableFaceDetection(ctx context.Context, in *EnableFaceDetectionRequest, opts ...grpc.CallOption) (*EnableFaceDetectionResponse, error)
	EnableMotionDetection(ctx context.Context, in *EnableMotionDetectionRequest, opts ...grpc.CallOption) (*EnableMotionDetectionResponse, error)
	EnableMirrorMode(ctx context.Context, in *EnableMirrorModeRequest, opts ...grpc.CallOption) (*EnableMirrorModeResponse, error)
	EnableImageStreaming(ctx context.Context, in *EnableImageStreamingRequest, opts ...grpc.CallOption) (*EnableImageStreamingResponse, error)
	IsImageStreamingEnabled(ctx context.Context, in *IsImageStreamingEnabledRequest, opts ...grpc.CallOption) (*IsImageStreamingEnabledResponse, error)
	// Cancel action by id
	CancelActionByIdTag(ctx context.Context, in *CancelActionByIdTagRequest, opts ...grpc.CallOption) (*CancelActionByIdTagResponse, error)
	// Cancel running SDK Behavior
	CancelBehavior(ctx context.Context, in *CancelBehaviorRequest, opts ...grpc.CallOption) (*CancelBehaviorResponse, error)
	// Tells Vector to drive to the specified pose and orientation.
	GoToPose(ctx context.Context, in *GoToPoseRequest, opts ...grpc.CallOption) (*GoToPoseResponse, error)
	// Tells Vector to dock with a light cube with a given approach angle and distance.
	DockWithCube(ctx context.Context, in *DockWithCubeRequest, opts ...grpc.CallOption) (*DockWithCubeResponse, error)
	// Drive Vector off the charger.
	DriveOffCharger(ctx context.Context, in *DriveOffChargerRequest, opts ...grpc.CallOption) (*DriveOffChargerResponse, error)
	// Drive Vector onto the charger.
	DriveOnCharger(ctx context.Context, in *DriveOnChargerRequest, opts ...grpc.CallOption) (*DriveOnChargerResponse, error)
	// Make Vector look for faces by turning and angling his head
	FindFaces(ctx context.Context, in *FindFacesRequest, opts ...grpc.CallOption) (*FindFacesResponse, error)
	// Make Vector look around in place by turning and moving his head
	LookAroundInPlace(ctx context.Context, in *LookAroundInPlaceRequest, opts ...grpc.CallOption) (*LookAroundInPlaceResponse, error)
	// Make Vector roll his block, regardless of relative position and orientation
	RollBlock(ctx context.Context, in *RollBlockRequest, opts ...grpc.CallOption) (*RollBlockResponse, error)
	// Get the photos info.
	PhotosInfo(ctx context.Context, in *PhotosInfoRequest, opts ...grpc.CallOption) (*PhotosInfoResponse, error)
	// Get a photo by ID.
	Photo(ctx context.Context, in *PhotoRequest, opts ...grpc.CallOption) (*PhotoResponse, error)
	// Get a thumbnail by ID.
	Thumbnail(ctx context.Context, in *ThumbnailRequest, opts ...grpc.CallOption) (*ThumbnailResponse, error)
	// Delete a photo by ID.
	DeletePhoto(ctx context.Context, in *DeletePhotoRequest, opts ...grpc.CallOption) (*DeletePhotoResponse, error)
	// Tells Vector to drive in a straight line.
	DriveStraight(ctx context.Context, in *DriveStraightRequest, opts ...grpc.CallOption) (*DriveStraightResponse, error)
	// Turn the robot around its current position.
	TurnInPlace(ctx context.Context, in *TurnInPlaceRequest, opts ...grpc.CallOption) (*TurnInPlaceResponse, error)
	// Tell Vector's head to move to a given angle.
	SetHeadAngle(ctx context.Context, in *SetHeadAngleRequest, opts ...grpc.CallOption) (*SetHeadAngleResponse, error)
	// Tell Vector's lift to move to a given height.
	SetLiftHeight(ctx context.Context, in *SetLiftHeightRequest, opts ...grpc.CallOption) (*SetLiftHeightResponse, error)
	// Tell Vector to turn towards this face.
	TurnTowardsFace(ctx context.Context, in *TurnTowardsFaceRequest, opts ...grpc.CallOption) (*TurnTowardsFaceResponse, error)
	// Tell Vector to drive to the specified object.
	GoToObject(ctx context.Context, in *GoToObjectRequest, opts ...grpc.CallOption) (*GoToObjectResponse, error)
	// Tell Vector to roll his cube.
	RollObject(ctx context.Context, in *RollObjectRequest, opts ...grpc.CallOption) (*RollObjectResponse, error)
	// Tell Vector to "pop a wheelie" using his cube.
	PopAWheelie(ctx context.Context, in *PopAWheelieRequest, opts ...grpc.CallOption) (*PopAWheelieResponse, error)
	// Instruct the robot to pick up the supplied object.
	PickupObject(ctx context.Context, in *PickupObjectRequest, opts ...grpc.CallOption) (*PickupObjectResponse, error)
	// Ask Vector to place the object he is carrying on the ground at the current location.
	PlaceObjectOnGroundHere(ctx context.Context, in *PlaceObjectOnGroundHereRequest, opts ...grpc.CallOption) (*PlaceObjectOnGroundHereResponse, error)
	// Set the Robot's master volume
	SetMasterVolume(ctx context.Context, in *MasterVolumeRequest, opts ...grpc.CallOption) (*MasterVolumeResponse, error)
	UserAuthentication(ctx context.Context, in *UserAuthenticationRequest, opts ...grpc.CallOption) (*UserAuthenticationResponse, error)
	// Check the current state of the battery.
	BatteryState(ctx context.Context, in *BatteryStateRequest, opts ...grpc.CallOption) (*BatteryStateResponse, error)
	// Get the versioning information for Vector.
	VersionState(ctx context.Context, in *VersionStateRequest, opts ...grpc.CallOption) (*VersionStateResponse, error)
	// Make Vector speak text.
	SayText(ctx context.Context, in *SayTextRequest, opts ...grpc.CallOption) (*SayTextResponse, error)
	// Attempt to connect to a cube. If a cube is currently connected,
	// this will do nothing.
	ConnectCube(ctx context.Context, in *ConnectCubeRequest, opts ...grpc.CallOption) (*ConnectCubeResponse, error)
	// Requests a disconnection from the currently connected cube.
	DisconnectCube(ctx context.Context, in *DisconnectCubeRequest, opts ...grpc.CallOption) (*DisconnectCubeResponse, error)
	CubesAvailable(ctx context.Context, in *CubesAvailableRequest, opts ...grpc.CallOption) (*CubesAvailableResponse, error)
	// Signal a connected cube to flash its lights using the default cube
	// flash animation.
	FlashCubeLights(ctx context.Context, in *FlashCubeLightsRequest, opts ...grpc.CallOption) (*FlashCubeLightsResponse, error)
	// Forget the robot's preferred cube. This will cause the robot to
	// connect to the cube with the highest RSSI (signal strength) next
	// time a connection is requested. Saves this preference to disk.
	// The next cube that the robot connects to will become its
	// preferred cube.
	ForgetPreferredCube(ctx context.Context, in *ForgetPreferredCubeRequest, opts ...grpc.CallOption) (*ForgetPreferredCubeResponse, error)
	// Set the robot's preferred cube and save it to disk. The robot
	// will always attempt to connect to this cube if it is available.
	// This is only used in simulation for now.
	SetPreferredCube(ctx context.Context, in *SetPreferredCubeRequest, opts ...grpc.CallOption) (*SetPreferredCubeResponse, error)
	// Causes the robot to forget about custom objects it currently knows about.
	DeleteCustomObjects(ctx context.Context, in *DeleteCustomObjectsRequest, opts ...grpc.CallOption) (*DeleteCustomObjectsResponse, error)
	// Creates a permanent custom object instance in the robot's world, with no connection to the vision system.
	CreateFixedCustomObject(ctx context.Context, in *CreateFixedCustomObjectRequest, opts ...grpc.CallOption) (*CreateFixedCustomObjectResponse, error)
	// Creates a custom object with distinct custom marker(s).
	DefineCustomObject(ctx context.Context, in *DefineCustomObjectRequest, opts ...grpc.CallOption) (*DefineCustomObjectResponse, error)
	// Set each of the lights on the currently connected cube based on two
	// rgb values each and timing data for how to transition between them.
	SetCubeLights(ctx context.Context, in *SetCubeLightsRequest, opts ...grpc.CallOption) (*SetCubeLightsResponse, error)
	// Request an audio feed from the robot.
	AudioFeed(ctx context.Context, in *AudioFeedRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[AudioFeedResponse], error)
	// Request a camera feed from the robot.
	CameraFeed(ctx context.Context, in *CameraFeedRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[CameraFeedResponse], error)
	// Request a single image to be captured and sent from the robot.
	CaptureSingleImage(ctx context.Context, in *CaptureSingleImageRequest, opts ...grpc.CallOption) (*CaptureSingleImageResponse, error)
	// Get Vector's camera configuration.
	GetCameraConfig(ctx context.Context, in *CameraConfigRequest, opts ...grpc.CallOption) (*CameraConfigResponse, error)
	// Set Vector's eye color.
	SetEyeColor(ctx context.Context, in *SetEyeColorRequest, opts ...grpc.CallOption) (*SetEyeColorResponse, error)
	// Stream navigation map data.
	NavMapFeed(ctx context.Context, in *NavMapFeedRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[NavMapFeedResponse], error)
	// Set Vector's camera settings
	SetCameraSettings(ctx context.Context, in *SetCameraSettingsRequest, opts ...grpc.CallOption) (*SetCameraSettingsResponse, error)
	AppIntent(ctx context.Context, in *AppIntentRequest, opts ...grpc.CallOption) (*AppIntentResponse, error)
	GetOnboardingState(ctx context.Context, in *OnboardingStateRequest, opts ...grpc.CallOption) (*OnboardingStateResponse, error)
	SendOnboardingInput(ctx context.Context, in *OnboardingInputRequest, opts ...grpc.CallOption) (*OnboardingInputResponse, error)
	GetLatestAttentionTransfer(ctx context.Context, in *LatestAttentionTransferRequest, opts ...grpc.CallOption) (*LatestAttentionTransferResponse, error)
	PullJdocs(ctx context.Context, in *PullJdocsRequest, opts ...grpc.CallOption) (*PullJdocsResponse, error)
	UpdateSettings(ctx context.Context, in *UpdateSettingsRequest, opts ...grpc.CallOption) (*UpdateSettingsResponse, error)
	UpdateAccountSettings(ctx context.Context, in *UpdateAccountSettingsRequest, opts ...grpc.CallOption) (*UpdateAccountSettingsResponse, error)
	UpdateUserEntitlements(ctx context.Context, in *UpdateUserEntitlementsRequest, opts ...grpc.CallOption) (*UpdateUserEntitlementsResponse, error)
	// StartUpdateEngine cycles the update-engine service (to start a new check for an update) and sets up a stream of
	// UpdateStatusResponse Events.
	StartUpdateEngine(ctx context.Context, in *CheckUpdateStatusRequest, opts ...grpc.CallOption) (*CheckUpdateStatusResponse, error)
	// CheckUpdateStatus tells if the robot is ready to reboot and update.
	CheckUpdateStatus(ctx context.Context, in *CheckUpdateStatusRequest, opts ...grpc.CallOption) (*CheckUpdateStatusResponse, error)
	UpdateAndRestart(ctx context.Context, in *UpdateAndRestartRequest, opts ...grpc.CallOption) (*UpdateAndRestartResponse, error)
	UploadDebugLogs(ctx context.Context, in *UploadDebugLogsRequest, opts ...grpc.CallOption) (*UploadDebugLogsResponse, error)
	CheckCloudConnection(ctx context.Context, in *CheckCloudRequest, opts ...grpc.CallOption) (*CheckCloudResponse, error)
	GetFeatureFlag(ctx context.Context, in *FeatureFlagRequest, opts ...grpc.CallOption) (*FeatureFlagResponse, error)
	GetFeatureFlagList(ctx context.Context, in *FeatureFlagListRequest, opts ...grpc.CallOption) (*FeatureFlagListResponse, error)
	GetAlexaAuthState(ctx context.Context, in *AlexaAuthStateRequest, opts ...grpc.CallOption) (*AlexaAuthStateResponse, error)
	AlexaOptIn(ctx context.Context, in *AlexaOptInRequest, opts ...grpc.CallOption) (*AlexaOptInResponse, error)
	// Acquire control of Vector's AI system.
	AssumeBehaviorControl(ctx context.Context, in *BehaviorControlRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[BehaviorControlResponse], error)
}

type externalInterfaceClient struct {
	cc grpc.ClientConnInterface
}

func NewExternalInterfaceClient(cc grpc.ClientConnInterface) ExternalInterfaceClient {
	return &externalInterfaceClient{cc}
}

func (c *externalInterfaceClient) ProtocolVersion(ctx context.Context, in *ProtocolVersionRequest, opts ...grpc.CallOption) (*ProtocolVersionResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ProtocolVersionResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_ProtocolVersion_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SDKInitialization(ctx context.Context, in *SDKInitializationRequest, opts ...grpc.CallOption) (*SDKInitializationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SDKInitializationResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SDKInitialization_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DriveWheels(ctx context.Context, in *DriveWheelsRequest, opts ...grpc.CallOption) (*DriveWheelsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DriveWheelsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DriveWheels_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) PlayAnimationTrigger(ctx context.Context, in *PlayAnimationTriggerRequest, opts ...grpc.CallOption) (*PlayAnimationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PlayAnimationResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_PlayAnimationTrigger_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) PlayAnimation(ctx context.Context, in *PlayAnimationRequest, opts ...grpc.CallOption) (*PlayAnimationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PlayAnimationResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_PlayAnimation_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) ListAnimations(ctx context.Context, in *ListAnimationsRequest, opts ...grpc.CallOption) (*ListAnimationsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListAnimationsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_ListAnimations_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) ListAnimationTriggers(ctx context.Context, in *ListAnimationTriggersRequest, opts ...grpc.CallOption) (*ListAnimationTriggersResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListAnimationTriggersResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_ListAnimationTriggers_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) MoveHead(ctx context.Context, in *MoveHeadRequest, opts ...grpc.CallOption) (*MoveHeadResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(MoveHeadResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_MoveHead_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) MoveLift(ctx context.Context, in *MoveLiftRequest, opts ...grpc.CallOption) (*MoveLiftResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(MoveLiftResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_MoveLift_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) StopAllMotors(ctx context.Context, in *StopAllMotorsRequest, opts ...grpc.CallOption) (*StopAllMotorsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(StopAllMotorsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_StopAllMotors_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DisplayFaceImageRGB(ctx context.Context, in *DisplayFaceImageRGBRequest, opts ...grpc.CallOption) (*DisplayFaceImageRGBResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DisplayFaceImageRGBResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DisplayFaceImageRGB_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EventStream(ctx context.Context, in *EventRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[EventResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ExternalInterface_ServiceDesc.Streams[0], ExternalInterface_EventStream_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[EventRequest, EventResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_EventStreamClient = grpc.ServerStreamingClient[EventResponse]

func (c *externalInterfaceClient) ExternalAudioStreamPlayback(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[ExternalAudioStreamRequest, ExternalAudioStreamResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ExternalInterface_ServiceDesc.Streams[1], ExternalInterface_ExternalAudioStreamPlayback_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[ExternalAudioStreamRequest, ExternalAudioStreamResponse]{ClientStream: stream}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_ExternalAudioStreamPlaybackClient = grpc.BidiStreamingClient[ExternalAudioStreamRequest, ExternalAudioStreamResponse]

func (c *externalInterfaceClient) BehaviorControl(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[BehaviorControlRequest, BehaviorControlResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ExternalInterface_ServiceDesc.Streams[2], ExternalInterface_BehaviorControl_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[BehaviorControlRequest, BehaviorControlResponse]{ClientStream: stream}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_BehaviorControlClient = grpc.BidiStreamingClient[BehaviorControlRequest, BehaviorControlResponse]

func (c *externalInterfaceClient) CancelFaceEnrollment(ctx context.Context, in *CancelFaceEnrollmentRequest, opts ...grpc.CallOption) (*CancelFaceEnrollmentResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CancelFaceEnrollmentResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_CancelFaceEnrollment_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) RequestEnrolledNames(ctx context.Context, in *RequestEnrolledNamesRequest, opts ...grpc.CallOption) (*RequestEnrolledNamesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(RequestEnrolledNamesResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_RequestEnrolledNames_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) UpdateEnrolledFaceByID(ctx context.Context, in *UpdateEnrolledFaceByIDRequest, opts ...grpc.CallOption) (*UpdateEnrolledFaceByIDResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UpdateEnrolledFaceByIDResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_UpdateEnrolledFaceByID_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EraseEnrolledFaceByID(ctx context.Context, in *EraseEnrolledFaceByIDRequest, opts ...grpc.CallOption) (*EraseEnrolledFaceByIDResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EraseEnrolledFaceByIDResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_EraseEnrolledFaceByID_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EraseAllEnrolledFaces(ctx context.Context, in *EraseAllEnrolledFacesRequest, opts ...grpc.CallOption) (*EraseAllEnrolledFacesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EraseAllEnrolledFacesResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_EraseAllEnrolledFaces_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SetFaceToEnroll(ctx context.Context, in *SetFaceToEnrollRequest, opts ...grpc.CallOption) (*SetFaceToEnrollResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SetFaceToEnrollResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SetFaceToEnroll_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EnrollFace(ctx context.Context, in *EnrollFaceRequest, opts ...grpc.CallOption) (*EnrollFaceResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EnrollFaceResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_EnrollFace_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EnableMarkerDetection(ctx context.Context, in *EnableMarkerDetectionRequest, opts ...grpc.CallOption) (*EnableMarkerDetectionResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EnableMarkerDetectionResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_EnableMarkerDetection_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EnableFaceDetection(ctx context.Context, in *EnableFaceDetectionRequest, opts ...grpc.CallOption) (*EnableFaceDetectionResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EnableFaceDetectionResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_EnableFaceDetection_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EnableMotionDetection(ctx context.Context, in *EnableMotionDetectionRequest, opts ...grpc.CallOption) (*EnableMotionDetectionResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EnableMotionDetectionResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_EnableMotionDetection_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EnableMirrorMode(ctx context.Context, in *EnableMirrorModeRequest, opts ...grpc.CallOption) (*EnableMirrorModeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EnableMirrorModeResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_EnableMirrorMode_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) EnableImageStreaming(ctx context.Context, in *EnableImageStreamingRequest, opts ...grpc.CallOption) (*EnableImageStreamingResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EnableImageStreamingResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_EnableImageStreaming_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) IsImageStreamingEnabled(ctx context.Context, in *IsImageStreamingEnabledRequest, opts ...grpc.CallOption) (*IsImageStreamingEnabledResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(IsImageStreamingEnabledResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_IsImageStreamingEnabled_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) CancelActionByIdTag(ctx context.Context, in *CancelActionByIdTagRequest, opts ...grpc.CallOption) (*CancelActionByIdTagResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CancelActionByIdTagResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_CancelActionByIdTag_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) CancelBehavior(ctx context.Context, in *CancelBehaviorRequest, opts ...grpc.CallOption) (*CancelBehaviorResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CancelBehaviorResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_CancelBehavior_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) GoToPose(ctx context.Context, in *GoToPoseRequest, opts ...grpc.CallOption) (*GoToPoseResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GoToPoseResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_GoToPose_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DockWithCube(ctx context.Context, in *DockWithCubeRequest, opts ...grpc.CallOption) (*DockWithCubeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DockWithCubeResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DockWithCube_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DriveOffCharger(ctx context.Context, in *DriveOffChargerRequest, opts ...grpc.CallOption) (*DriveOffChargerResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DriveOffChargerResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DriveOffCharger_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DriveOnCharger(ctx context.Context, in *DriveOnChargerRequest, opts ...grpc.CallOption) (*DriveOnChargerResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DriveOnChargerResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DriveOnCharger_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) FindFaces(ctx context.Context, in *FindFacesRequest, opts ...grpc.CallOption) (*FindFacesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(FindFacesResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_FindFaces_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) LookAroundInPlace(ctx context.Context, in *LookAroundInPlaceRequest, opts ...grpc.CallOption) (*LookAroundInPlaceResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(LookAroundInPlaceResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_LookAroundInPlace_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) RollBlock(ctx context.Context, in *RollBlockRequest, opts ...grpc.CallOption) (*RollBlockResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(RollBlockResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_RollBlock_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) PhotosInfo(ctx context.Context, in *PhotosInfoRequest, opts ...grpc.CallOption) (*PhotosInfoResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PhotosInfoResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_PhotosInfo_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) Photo(ctx context.Context, in *PhotoRequest, opts ...grpc.CallOption) (*PhotoResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PhotoResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_Photo_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) Thumbnail(ctx context.Context, in *ThumbnailRequest, opts ...grpc.CallOption) (*ThumbnailResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ThumbnailResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_Thumbnail_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DeletePhoto(ctx context.Context, in *DeletePhotoRequest, opts ...grpc.CallOption) (*DeletePhotoResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DeletePhotoResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DeletePhoto_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DriveStraight(ctx context.Context, in *DriveStraightRequest, opts ...grpc.CallOption) (*DriveStraightResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DriveStraightResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DriveStraight_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) TurnInPlace(ctx context.Context, in *TurnInPlaceRequest, opts ...grpc.CallOption) (*TurnInPlaceResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(TurnInPlaceResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_TurnInPlace_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SetHeadAngle(ctx context.Context, in *SetHeadAngleRequest, opts ...grpc.CallOption) (*SetHeadAngleResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SetHeadAngleResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SetHeadAngle_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SetLiftHeight(ctx context.Context, in *SetLiftHeightRequest, opts ...grpc.CallOption) (*SetLiftHeightResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SetLiftHeightResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SetLiftHeight_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) TurnTowardsFace(ctx context.Context, in *TurnTowardsFaceRequest, opts ...grpc.CallOption) (*TurnTowardsFaceResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(TurnTowardsFaceResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_TurnTowardsFace_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) GoToObject(ctx context.Context, in *GoToObjectRequest, opts ...grpc.CallOption) (*GoToObjectResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GoToObjectResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_GoToObject_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) RollObject(ctx context.Context, in *RollObjectRequest, opts ...grpc.CallOption) (*RollObjectResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(RollObjectResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_RollObject_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) PopAWheelie(ctx context.Context, in *PopAWheelieRequest, opts ...grpc.CallOption) (*PopAWheelieResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PopAWheelieResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_PopAWheelie_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) PickupObject(ctx context.Context, in *PickupObjectRequest, opts ...grpc.CallOption) (*PickupObjectResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PickupObjectResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_PickupObject_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) PlaceObjectOnGroundHere(ctx context.Context, in *PlaceObjectOnGroundHereRequest, opts ...grpc.CallOption) (*PlaceObjectOnGroundHereResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PlaceObjectOnGroundHereResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_PlaceObjectOnGroundHere_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SetMasterVolume(ctx context.Context, in *MasterVolumeRequest, opts ...grpc.CallOption) (*MasterVolumeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(MasterVolumeResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SetMasterVolume_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) UserAuthentication(ctx context.Context, in *UserAuthenticationRequest, opts ...grpc.CallOption) (*UserAuthenticationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UserAuthenticationResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_UserAuthentication_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) BatteryState(ctx context.Context, in *BatteryStateRequest, opts ...grpc.CallOption) (*BatteryStateResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BatteryStateResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_BatteryState_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) VersionState(ctx context.Context, in *VersionStateRequest, opts ...grpc.CallOption) (*VersionStateResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(VersionStateResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_VersionState_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SayText(ctx context.Context, in *SayTextRequest, opts ...grpc.CallOption) (*SayTextResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SayTextResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SayText_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) ConnectCube(ctx context.Context, in *ConnectCubeRequest, opts ...grpc.CallOption) (*ConnectCubeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ConnectCubeResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_ConnectCube_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DisconnectCube(ctx context.Context, in *DisconnectCubeRequest, opts ...grpc.CallOption) (*DisconnectCubeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DisconnectCubeResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DisconnectCube_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) CubesAvailable(ctx context.Context, in *CubesAvailableRequest, opts ...grpc.CallOption) (*CubesAvailableResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CubesAvailableResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_CubesAvailable_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) FlashCubeLights(ctx context.Context, in *FlashCubeLightsRequest, opts ...grpc.CallOption) (*FlashCubeLightsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(FlashCubeLightsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_FlashCubeLights_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) ForgetPreferredCube(ctx context.Context, in *ForgetPreferredCubeRequest, opts ...grpc.CallOption) (*ForgetPreferredCubeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ForgetPreferredCubeResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_ForgetPreferredCube_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SetPreferredCube(ctx context.Context, in *SetPreferredCubeRequest, opts ...grpc.CallOption) (*SetPreferredCubeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SetPreferredCubeResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SetPreferredCube_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DeleteCustomObjects(ctx context.Context, in *DeleteCustomObjectsRequest, opts ...grpc.CallOption) (*DeleteCustomObjectsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DeleteCustomObjectsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DeleteCustomObjects_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) CreateFixedCustomObject(ctx context.Context, in *CreateFixedCustomObjectRequest, opts ...grpc.CallOption) (*CreateFixedCustomObjectResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CreateFixedCustomObjectResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_CreateFixedCustomObject_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) DefineCustomObject(ctx context.Context, in *DefineCustomObjectRequest, opts ...grpc.CallOption) (*DefineCustomObjectResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DefineCustomObjectResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_DefineCustomObject_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SetCubeLights(ctx context.Context, in *SetCubeLightsRequest, opts ...grpc.CallOption) (*SetCubeLightsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SetCubeLightsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SetCubeLights_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) AudioFeed(ctx context.Context, in *AudioFeedRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[AudioFeedResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ExternalInterface_ServiceDesc.Streams[3], ExternalInterface_AudioFeed_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[AudioFeedRequest, AudioFeedResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_AudioFeedClient = grpc.ServerStreamingClient[AudioFeedResponse]

func (c *externalInterfaceClient) CameraFeed(ctx context.Context, in *CameraFeedRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[CameraFeedResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ExternalInterface_ServiceDesc.Streams[4], ExternalInterface_CameraFeed_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[CameraFeedRequest, CameraFeedResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_CameraFeedClient = grpc.ServerStreamingClient[CameraFeedResponse]

func (c *externalInterfaceClient) CaptureSingleImage(ctx context.Context, in *CaptureSingleImageRequest, opts ...grpc.CallOption) (*CaptureSingleImageResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CaptureSingleImageResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_CaptureSingleImage_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) GetCameraConfig(ctx context.Context, in *CameraConfigRequest, opts ...grpc.CallOption) (*CameraConfigResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CameraConfigResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_GetCameraConfig_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SetEyeColor(ctx context.Context, in *SetEyeColorRequest, opts ...grpc.CallOption) (*SetEyeColorResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SetEyeColorResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SetEyeColor_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) NavMapFeed(ctx context.Context, in *NavMapFeedRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[NavMapFeedResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ExternalInterface_ServiceDesc.Streams[5], ExternalInterface_NavMapFeed_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[NavMapFeedRequest, NavMapFeedResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_NavMapFeedClient = grpc.ServerStreamingClient[NavMapFeedResponse]

func (c *externalInterfaceClient) SetCameraSettings(ctx context.Context, in *SetCameraSettingsRequest, opts ...grpc.CallOption) (*SetCameraSettingsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SetCameraSettingsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SetCameraSettings_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) AppIntent(ctx context.Context, in *AppIntentRequest, opts ...grpc.CallOption) (*AppIntentResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AppIntentResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_AppIntent_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) GetOnboardingState(ctx context.Context, in *OnboardingStateRequest, opts ...grpc.CallOption) (*OnboardingStateResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(OnboardingStateResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_GetOnboardingState_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) SendOnboardingInput(ctx context.Context, in *OnboardingInputRequest, opts ...grpc.CallOption) (*OnboardingInputResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(OnboardingInputResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_SendOnboardingInput_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) GetLatestAttentionTransfer(ctx context.Context, in *LatestAttentionTransferRequest, opts ...grpc.CallOption) (*LatestAttentionTransferResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(LatestAttentionTransferResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_GetLatestAttentionTransfer_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) PullJdocs(ctx context.Context, in *PullJdocsRequest, opts ...grpc.CallOption) (*PullJdocsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PullJdocsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_PullJdocs_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) UpdateSettings(ctx context.Context, in *UpdateSettingsRequest, opts ...grpc.CallOption) (*UpdateSettingsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UpdateSettingsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_UpdateSettings_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) UpdateAccountSettings(ctx context.Context, in *UpdateAccountSettingsRequest, opts ...grpc.CallOption) (*UpdateAccountSettingsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UpdateAccountSettingsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_UpdateAccountSettings_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) UpdateUserEntitlements(ctx context.Context, in *UpdateUserEntitlementsRequest, opts ...grpc.CallOption) (*UpdateUserEntitlementsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UpdateUserEntitlementsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_UpdateUserEntitlements_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) StartUpdateEngine(ctx context.Context, in *CheckUpdateStatusRequest, opts ...grpc.CallOption) (*CheckUpdateStatusResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CheckUpdateStatusResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_StartUpdateEngine_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) CheckUpdateStatus(ctx context.Context, in *CheckUpdateStatusRequest, opts ...grpc.CallOption) (*CheckUpdateStatusResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CheckUpdateStatusResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_CheckUpdateStatus_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) UpdateAndRestart(ctx context.Context, in *UpdateAndRestartRequest, opts ...grpc.CallOption) (*UpdateAndRestartResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UpdateAndRestartResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_UpdateAndRestart_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) UploadDebugLogs(ctx context.Context, in *UploadDebugLogsRequest, opts ...grpc.CallOption) (*UploadDebugLogsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(UploadDebugLogsResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_UploadDebugLogs_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) CheckCloudConnection(ctx context.Context, in *CheckCloudRequest, opts ...grpc.CallOption) (*CheckCloudResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CheckCloudResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_CheckCloudConnection_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) GetFeatureFlag(ctx context.Context, in *FeatureFlagRequest, opts ...grpc.CallOption) (*FeatureFlagResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(FeatureFlagResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_GetFeatureFlag_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) GetFeatureFlagList(ctx context.Context, in *FeatureFlagListRequest, opts ...grpc.CallOption) (*FeatureFlagListResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(FeatureFlagListResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_GetFeatureFlagList_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) GetAlexaAuthState(ctx context.Context, in *AlexaAuthStateRequest, opts ...grpc.CallOption) (*AlexaAuthStateResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AlexaAuthStateResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_GetAlexaAuthState_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) AlexaOptIn(ctx context.Context, in *AlexaOptInRequest, opts ...grpc.CallOption) (*AlexaOptInResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AlexaOptInResponse)
	err := c.cc.Invoke(ctx, ExternalInterface_AlexaOptIn_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *externalInterfaceClient) AssumeBehaviorControl(ctx context.Context, in *BehaviorControlRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[BehaviorControlResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ExternalInterface_ServiceDesc.Streams[6], ExternalInterface_AssumeBehaviorControl_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[BehaviorControlRequest, BehaviorControlResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_AssumeBehaviorControlClient = grpc.ServerStreamingClient[BehaviorControlResponse]

// ExternalInterfaceServer is the server API for ExternalInterface service.
// All implementations must embed UnimplementedExternalInterfaceServer
// for forward compatibility.
//
// The grpc-defined connection between the SDK and Anki's Vector robot.
type ExternalInterfaceServer interface {
	// Checks the supported protocol version by passing in the client version and
	// minimum host version and receiving a response to see whether the versions are supported.
	ProtocolVersion(context.Context, *ProtocolVersionRequest) (*ProtocolVersionResponse, error)
	// SDK-only message to pass version info for device OS, Python version, etc.
	SDKInitialization(context.Context, *SDKInitializationRequest) (*SDKInitializationResponse, error)
	// Sets the speed and acceleration for Vector's wheel motors.
	DriveWheels(context.Context, *DriveWheelsRequest) (*DriveWheelsResponse, error)
	// Requests that Vector play an animation trigger.
	PlayAnimationTrigger(context.Context, *PlayAnimationTriggerRequest) (*PlayAnimationResponse, error)
	// Requests that Vector play an animation.
	PlayAnimation(context.Context, *PlayAnimationRequest) (*PlayAnimationResponse, error)
	// Constructs and returns a list of animations.
	ListAnimations(context.Context, *ListAnimationsRequest) (*ListAnimationsResponse, error)
	// Constructs and returns a list of animation triggers.
	ListAnimationTriggers(context.Context, *ListAnimationTriggersRequest) (*ListAnimationTriggersResponse, error)
	// Moves Vector's head.
	MoveHead(context.Context, *MoveHeadRequest) (*MoveHeadResponse, error)
	// Moves Vector's lift.
	MoveLift(context.Context, *MoveLiftRequest) (*MoveLiftResponse, error)
	// Stop all motor commands requested: MoveHead, MoveLift and DriveWheels.
	StopAllMotors(context.Context, *StopAllMotorsRequest) (*StopAllMotorsResponse, error)
	// Sets screen (Vector's face) to a solid color.
	DisplayFaceImageRGB(context.Context, *DisplayFaceImageRGBRequest) (*DisplayFaceImageRGBResponse, error)
	// Streaming events endpoint
	EventStream(*EventRequest, grpc.ServerStreamingServer[EventResponse]) error
	// Play audio using Vector's speaker
	ExternalAudioStreamPlayback(grpc.BidiStreamingServer[ExternalAudioStreamRequest, ExternalAudioStreamResponse]) error
	// Integrate with and acquire control of Vector's AI system.
	BehaviorControl(grpc.BidiStreamingServer[BehaviorControlRequest, BehaviorControlResponse]) error
	CancelFaceEnrollment(context.Context, *CancelFaceEnrollmentRequest) (*CancelFaceEnrollmentResponse, error)
	// Get a list of names and their IDs.
	RequestEnrolledNames(context.Context, *RequestEnrolledNamesRequest) (*RequestEnrolledNamesResponse, error)
	// Update the name enrolled for a given face.
	UpdateEnrolledFaceByID(context.Context, *UpdateEnrolledFaceByIDRequest) (*UpdateEnrolledFaceByIDResponse, error)
	// Erase the enrollment (name) record for the face with this ID.
	EraseEnrolledFaceByID(context.Context, *EraseEnrolledFaceByIDRequest) (*EraseEnrolledFaceByIDResponse, error)
	// Erase the enrollment (name) records for all faces.
	EraseAllEnrolledFaces(context.Context, *EraseAllEnrolledFacesRequest) (*EraseAllEnrolledFacesResponse, error)
	SetFaceToEnroll(context.Context, *SetFaceToEnrollRequest) (*SetFaceToEnrollResponse, error)
	// Enroll a face. Must be used with SetFaceToEnroll
	EnrollFace(context.Context, *EnrollFaceRequest) (*EnrollFaceResponse, error)
	EnableMarkerDetection(context.Context, *EnableMarkerDetectionRequest) (*EnableMarkerDetectionResponse, error)
	EnableFaceDetection(context.Context, *EnableFaceDetectionRequest) (*EnableFaceDetectionResponse, error)
	EnableMotionDetection(context.Context, *EnableMotionDetectionRequest) (*EnableMotionDetectionResponse, error)
	EnableMirrorMode(context.Context, *EnableMirrorModeRequest) (*EnableMirrorModeResponse, error)
	EnableImageStreaming(context.Context, *EnableImageStreamingRequest) (*EnableImageStreamingResponse, error)
	IsImageStreamingEnabled(context.Context, *IsImageStreamingEnabledRequest) (*IsImageStreamingEnabledResponse, error)
	// Cancel action by id
	CancelActionByIdTag(context.Context, *CancelActionByIdTagRequest) (*CancelActionByIdTagResponse, error)
	// Cancel running SDK Behavior
	CancelBehavior(context.Context, *CancelBehaviorRequest) (*CancelBehaviorResponse, error)
	// Tells Vector to drive to the specified pose and orientation.
	GoToPose(context.Context, *GoToPoseRequest) (*GoToPoseResponse, error)
	// Tells Vector to dock with a light cube with a given approach angle and distance.
	DockWithCube(context.Context, *DockWithCubeRequest) (*DockWithCubeResponse, error)
	// Drive Vector off the charger.
	DriveOffCharger(context.Context, *DriveOffChargerRequest) (*DriveOffChargerResponse, error)
	// Drive Vector onto the charger.
	DriveOnCharger(context.Context, *DriveOnChargerRequest) (*DriveOnChargerResponse, error)
	// Make Vector look for faces by turning and angling his head
	FindFaces(context.Context, *FindFacesRequest) (*FindFacesResponse, error)
	// Make Vector look around in place by turning and moving his head
	LookAroundInPlace(context.Context, *LookAroundInPlaceRequest) (*LookAroundInPlaceResponse, error)
	// Make Vector roll his block, regardless of relative position and orientation
	RollBlock(context.Context, *RollBlockRequest) (*RollBlockResponse, error)
	// Get the photos info.
	PhotosInfo(context.Context, *PhotosInfoRequest) (*PhotosInfoResponse, error)
	// Get a photo by ID.
	Photo(context.Context, *PhotoRequest) (*PhotoResponse, error)
	// Get a thumbnail by ID.
	Thumbnail(context.Context, *ThumbnailRequest) (*ThumbnailResponse, error)
	// Delete a photo by ID.
	DeletePhoto(context.Context, *DeletePhotoRequest) (*DeletePhotoResponse, error)
	// Tells Vector to drive in a straight line.
	DriveStraight(context.Context, *DriveStraightRequest) (*DriveStraightResponse, error)
	// Turn the robot around its current position.
	TurnInPlace(context.Context, *TurnInPlaceRequest) (*TurnInPlaceResponse, error)
	// Tell Vector's head to move to a given angle.
	SetHeadAngle(context.Context, *SetHeadAngleRequest) (*SetHeadAngleResponse, error)
	// Tell Vector's lift to move to a given height.
	SetLiftHeight(context.Context, *SetLiftHeightRequest) (*SetLiftHeightResponse, error)
	// Tell Vector to turn towards this face.
	TurnTowardsFace(context.Context, *TurnTowardsFaceRequest) (*TurnTowardsFaceResponse, error)
	// Tell Vector to drive to the specified object.
	GoToObject(context.Context, *GoToObjectRequest) (*GoToObjectResponse, error)
	// Tell Vector to roll his cube.
	RollObject(context.Context, *RollObjectRequest) (*RollObjectResponse, error)
	// Tell Vector to "pop a wheelie" using his cube.
	PopAWheelie(context.Context, *PopAWheelieRequest) (*PopAWheelieResponse, error)
	// Instruct the robot to pick up the supplied object.
	PickupObject(context.Context, *PickupObjectRequest) (*PickupObjectResponse, error)
	// Ask Vector to place the object he is carrying on the ground at the current location.
	PlaceObjectOnGroundHere(context.Context, *PlaceObjectOnGroundHereRequest) (*PlaceObjectOnGroundHereResponse, error)
	// Set the Robot's master volume
	SetMasterVolume(context.Context, *MasterVolumeRequest) (*MasterVolumeResponse, error)
	UserAuthentication(context.Context, *UserAuthenticationRequest) (*UserAuthenticationResponse, error)
	// Check the current state of the battery.
	BatteryState(context.Context, *BatteryStateRequest) (*BatteryStateResponse, error)
	// Get the versioning information for Vector.
	VersionState(context.Context, *VersionStateRequest) (*VersionStateResponse, error)
	// Make Vector speak text.
	SayText(context.Context, *SayTextRequest) (*SayTextResponse, error)
	// Attempt to connect to a cube. If a cube is currently connected,
	// this will do nothing.
	ConnectCube(context.Context, *ConnectCubeRequest) (*ConnectCubeResponse, error)
	// Requests a disconnection from the currently connected cube.
	DisconnectCube(context.Context, *DisconnectCubeRequest) (*DisconnectCubeResponse, error)
	CubesAvailable(context.Context, *CubesAvailableRequest) (*CubesAvailableResponse, error)
	// Signal a connected cube to flash its lights using the default cube
	// flash animation.
	FlashCubeLights(context.Context, *FlashCubeLightsRequest) (*FlashCubeLightsResponse, error)
	// Forget the robot's preferred cube. This will cause the robot to
	// connect to the cube with the highest RSSI (signal strength) next
	// time a connection is requested. Saves this preference to disk.
	// The next cube that the robot connects to will become its
	// preferred cube.
	ForgetPreferredCube(context.Context, *ForgetPreferredCubeRequest) (*ForgetPreferredCubeResponse, error)
	// Set the robot's preferred cube and save it to disk. The robot
	// will always attempt to connect to this cube if it is available.
	// This is only used in simulation for now.
	SetPreferredCube(context.Context, *SetPreferredCubeRequest) (*SetPreferredCubeResponse, error)
	// Causes the robot to forget about custom objects it currently knows about.
	DeleteCustomObjects(context.Context, *DeleteCustomObjectsRequest) (*DeleteCustomObjectsResponse, error)
	// Creates a permanent custom object instance in the robot's world, with no connection to the vision system.
	CreateFixedCustomObject(context.Context, *CreateFixedCustomObjectRequest) (*CreateFixedCustomObjectResponse, error)
	// Creates a custom object with distinct custom marker(s).
	DefineCustomObject(context.Context, *DefineCustomObjectRequest) (*DefineCustomObjectResponse, error)
	// Set each of the lights on the currently connected cube based on two
	// rgb values each and timing data for how to transition between them.
	SetCubeLights(context.Context, *SetCubeLightsRequest) (*SetCubeLightsResponse, error)
	// Request an audio feed from the robot.
	AudioFeed(*AudioFeedRequest, grpc.ServerStreamingServer[AudioFeedResponse]) error
	// Request a camera feed from the robot.
	CameraFeed(*CameraFeedRequest, grpc.ServerStreamingServer[CameraFeedResponse]) error
	// Request a single image to be captured and sent from the robot.
	CaptureSingleImage(context.Context, *CaptureSingleImageRequest) (*CaptureSingleImageResponse, error)
	// Get Vector's camera configuration.
	GetCameraConfig(context.Context, *CameraConfigRequest) (*CameraConfigResponse, error)
	// Set Vector's eye color.
	SetEyeColor(context.Context, *SetEyeColorRequest) (*SetEyeColorResponse, error)
	// Stream navigation map data.
	NavMapFeed(*NavMapFeedRequest, grpc.ServerStreamingServer[NavMapFeedResponse]) error
	// Set Vector's camera settings
	SetCameraSettings(context.Context, *SetCameraSettingsRequest) (*SetCameraSettingsResponse, error)
	AppIntent(context.Context, *AppIntentRequest) (*AppIntentResponse, error)
	GetOnboardingState(context.Context, *OnboardingStateRequest) (*OnboardingStateResponse, error)
	SendOnboardingInput(context.Context, *OnboardingInputRequest) (*OnboardingInputResponse, error)
	GetLatestAttentionTransfer(context.Context, *LatestAttentionTransferRequest) (*LatestAttentionTransferResponse, error)
	PullJdocs(context.Context, *PullJdocsRequest) (*PullJdocsResponse, error)
	UpdateSettings(context.Context, *UpdateSettingsRequest) (*UpdateSettingsResponse, error)
	UpdateAccountSettings(context.Context, *UpdateAccountSettingsRequest) (*UpdateAccountSettingsResponse, error)
	UpdateUserEntitlements(context.Context, *UpdateUserEntitlementsRequest) (*UpdateUserEntitlementsResponse, error)
	// StartUpdateEngine cycles the update-engine service (to start a new check for an update) and sets up a stream of
	// UpdateStatusResponse Events.
	StartUpdateEngine(context.Context, *CheckUpdateStatusRequest) (*CheckUpdateStatusResponse, error)
	// CheckUpdateStatus tells if the robot is ready to reboot and update.
	CheckUpdateStatus(context.Context, *CheckUpdateStatusRequest) (*CheckUpdateStatusResponse, error)
	UpdateAndRestart(context.Context, *UpdateAndRestartRequest) (*UpdateAndRestartResponse, error)
	UploadDebugLogs(context.Context, *UploadDebugLogsRequest) (*UploadDebugLogsResponse, error)
	CheckCloudConnection(context.Context, *CheckCloudRequest) (*CheckCloudResponse, error)
	GetFeatureFlag(context.Context, *FeatureFlagRequest) (*FeatureFlagResponse, error)
	GetFeatureFlagList(context.Context, *FeatureFlagListRequest) (*FeatureFlagListResponse, error)
	GetAlexaAuthState(context.Context, *AlexaAuthStateRequest) (*AlexaAuthStateResponse, error)
	AlexaOptIn(context.Context, *AlexaOptInRequest) (*AlexaOptInResponse, error)
	// Acquire control of Vector's AI system.
	AssumeBehaviorControl(*BehaviorControlRequest, grpc.ServerStreamingServer[BehaviorControlResponse]) error
	mustEmbedUnimplementedExternalInterfaceServer()
}

// UnimplementedExternalInterfaceServer must be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedExternalInterfaceServer struct{}

func (UnimplementedExternalInterfaceServer) ProtocolVersion(context.Context, *ProtocolVersionRequest) (*ProtocolVersionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ProtocolVersion not implemented")
}
func (UnimplementedExternalInterfaceServer) SDKInitialization(context.Context, *SDKInitializationRequest) (*SDKInitializationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SDKInitialization not implemented")
}
func (UnimplementedExternalInterfaceServer) DriveWheels(context.Context, *DriveWheelsRequest) (*DriveWheelsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DriveWheels not implemented")
}
func (UnimplementedExternalInterfaceServer) PlayAnimationTrigger(context.Context, *PlayAnimationTriggerRequest) (*PlayAnimationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PlayAnimationTrigger not implemented")
}
func (UnimplementedExternalInterfaceServer) PlayAnimation(context.Context, *PlayAnimationRequest) (*PlayAnimationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PlayAnimation not implemented")
}
func (UnimplementedExternalInterfaceServer) ListAnimations(context.Context, *ListAnimationsRequest) (*ListAnimationsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListAnimations not implemented")
}
func (UnimplementedExternalInterfaceServer) ListAnimationTriggers(context.Context, *ListAnimationTriggersRequest) (*ListAnimationTriggersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListAnimationTriggers not implemented")
}
func (UnimplementedExternalInterfaceServer) MoveHead(context.Context, *MoveHeadRequest) (*MoveHeadResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method MoveHead not implemented")
}
func (UnimplementedExternalInterfaceServer) MoveLift(context.Context, *MoveLiftRequest) (*MoveLiftResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method MoveLift not implemented")
}
func (UnimplementedExternalInterfaceServer) StopAllMotors(context.Context, *StopAllMotorsRequest) (*StopAllMotorsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StopAllMotors not implemented")
}
func (UnimplementedExternalInterfaceServer) DisplayFaceImageRGB(context.Context, *DisplayFaceImageRGBRequest) (*DisplayFaceImageRGBResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DisplayFaceImageRGB not implemented")
}
func (UnimplementedExternalInterfaceServer) EventStream(*EventRequest, grpc.ServerStreamingServer[EventResponse]) error {
	return status.Errorf(codes.Unimplemented, "method EventStream not implemented")
}
func (UnimplementedExternalInterfaceServer) ExternalAudioStreamPlayback(grpc.BidiStreamingServer[ExternalAudioStreamRequest, ExternalAudioStreamResponse]) error {
	return status.Errorf(codes.Unimplemented, "method ExternalAudioStreamPlayback not implemented")
}
func (UnimplementedExternalInterfaceServer) BehaviorControl(grpc.BidiStreamingServer[BehaviorControlRequest, BehaviorControlResponse]) error {
	return status.Errorf(codes.Unimplemented, "method BehaviorControl not implemented")
}
func (UnimplementedExternalInterfaceServer) CancelFaceEnrollment(context.Context, *CancelFaceEnrollmentRequest) (*CancelFaceEnrollmentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelFaceEnrollment not implemented")
}
func (UnimplementedExternalInterfaceServer) RequestEnrolledNames(context.Context, *RequestEnrolledNamesRequest) (*RequestEnrolledNamesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RequestEnrolledNames not implemented")
}
func (UnimplementedExternalInterfaceServer) UpdateEnrolledFaceByID(context.Context, *UpdateEnrolledFaceByIDRequest) (*UpdateEnrolledFaceByIDResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateEnrolledFaceByID not implemented")
}
func (UnimplementedExternalInterfaceServer) EraseEnrolledFaceByID(context.Context, *EraseEnrolledFaceByIDRequest) (*EraseEnrolledFaceByIDResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EraseEnrolledFaceByID not implemented")
}
func (UnimplementedExternalInterfaceServer) EraseAllEnrolledFaces(context.Context, *EraseAllEnrolledFacesRequest) (*EraseAllEnrolledFacesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EraseAllEnrolledFaces not implemented")
}
func (UnimplementedExternalInterfaceServer) SetFaceToEnroll(context.Context, *SetFaceToEnrollRequest) (*SetFaceToEnrollResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetFaceToEnroll not implemented")
}
func (UnimplementedExternalInterfaceServer) EnrollFace(context.Context, *EnrollFaceRequest) (*EnrollFaceResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnrollFace not implemented")
}
func (UnimplementedExternalInterfaceServer) EnableMarkerDetection(context.Context, *EnableMarkerDetectionRequest) (*EnableMarkerDetectionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableMarkerDetection not implemented")
}
func (UnimplementedExternalInterfaceServer) EnableFaceDetection(context.Context, *EnableFaceDetectionRequest) (*EnableFaceDetectionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableFaceDetection not implemented")
}
func (UnimplementedExternalInterfaceServer) EnableMotionDetection(context.Context, *EnableMotionDetectionRequest) (*EnableMotionDetectionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableMotionDetection not implemented")
}
func (UnimplementedExternalInterfaceServer) EnableMirrorMode(context.Context, *EnableMirrorModeRequest) (*EnableMirrorModeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableMirrorMode not implemented")
}
func (UnimplementedExternalInterfaceServer) EnableImageStreaming(context.Context, *EnableImageStreamingRequest) (*EnableImageStreamingResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableImageStreaming not implemented")
}
func (UnimplementedExternalInterfaceServer) IsImageStreamingEnabled(context.Context, *IsImageStreamingEnabledRequest) (*IsImageStreamingEnabledResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method IsImageStreamingEnabled not implemented")
}
func (UnimplementedExternalInterfaceServer) CancelActionByIdTag(context.Context, *CancelActionByIdTagRequest) (*CancelActionByIdTagResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelActionByIdTag not implemented")
}
func (UnimplementedExternalInterfaceServer) CancelBehavior(context.Context, *CancelBehaviorRequest) (*CancelBehaviorResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelBehavior not implemented")
}
func (UnimplementedExternalInterfaceServer) GoToPose(context.Context, *GoToPoseRequest) (*GoToPoseResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GoToPose not implemented")
}
func (UnimplementedExternalInterfaceServer) DockWithCube(context.Context, *DockWithCubeRequest) (*DockWithCubeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DockWithCube not implemented")
}
func (UnimplementedExternalInterfaceServer) DriveOffCharger(context.Context, *DriveOffChargerRequest) (*DriveOffChargerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DriveOffCharger not implemented")
}
func (UnimplementedExternalInterfaceServer) DriveOnCharger(context.Context, *DriveOnChargerRequest) (*DriveOnChargerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DriveOnCharger not implemented")
}
func (UnimplementedExternalInterfaceServer) FindFaces(context.Context, *FindFacesRequest) (*FindFacesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FindFaces not implemented")
}
func (UnimplementedExternalInterfaceServer) LookAroundInPlace(context.Context, *LookAroundInPlaceRequest) (*LookAroundInPlaceResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method LookAroundInPlace not implemented")
}
func (UnimplementedExternalInterfaceServer) RollBlock(context.Context, *RollBlockRequest) (*RollBlockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RollBlock not implemented")
}
func (UnimplementedExternalInterfaceServer) PhotosInfo(context.Context, *PhotosInfoRequest) (*PhotosInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PhotosInfo not implemented")
}
func (UnimplementedExternalInterfaceServer) Photo(context.Context, *PhotoRequest) (*PhotoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Photo not implemented")
}
func (UnimplementedExternalInterfaceServer) Thumbnail(context.Context, *ThumbnailRequest) (*ThumbnailResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Thumbnail not implemented")
}
func (UnimplementedExternalInterfaceServer) DeletePhoto(context.Context, *DeletePhotoRequest) (*DeletePhotoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeletePhoto not implemented")
}
func (UnimplementedExternalInterfaceServer) DriveStraight(context.Context, *DriveStraightRequest) (*DriveStraightResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DriveStraight not implemented")
}
func (UnimplementedExternalInterfaceServer) TurnInPlace(context.Context, *TurnInPlaceRequest) (*TurnInPlaceResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method TurnInPlace not implemented")
}
func (UnimplementedExternalInterfaceServer) SetHeadAngle(context.Context, *SetHeadAngleRequest) (*SetHeadAngleResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetHeadAngle not implemented")
}
func (UnimplementedExternalInterfaceServer) SetLiftHeight(context.Context, *SetLiftHeightRequest) (*SetLiftHeightResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetLiftHeight not implemented")
}
func (UnimplementedExternalInterfaceServer) TurnTowardsFace(context.Context, *TurnTowardsFaceRequest) (*TurnTowardsFaceResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method TurnTowardsFace not implemented")
}
func (UnimplementedExternalInterfaceServer) GoToObject(context.Context, *GoToObjectRequest) (*GoToObjectResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GoToObject not implemented")
}
func (UnimplementedExternalInterfaceServer) RollObject(context.Context, *RollObjectRequest) (*RollObjectResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RollObject not implemented")
}
func (UnimplementedExternalInterfaceServer) PopAWheelie(context.Context, *PopAWheelieRequest) (*PopAWheelieResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PopAWheelie not implemented")
}
func (UnimplementedExternalInterfaceServer) PickupObject(context.Context, *PickupObjectRequest) (*PickupObjectResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PickupObject not implemented")
}
func (UnimplementedExternalInterfaceServer) PlaceObjectOnGroundHere(context.Context, *PlaceObjectOnGroundHereRequest) (*PlaceObjectOnGroundHereResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PlaceObjectOnGroundHere not implemented")
}
func (UnimplementedExternalInterfaceServer) SetMasterVolume(context.Context, *MasterVolumeRequest) (*MasterVolumeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetMasterVolume not implemented")
}
func (UnimplementedExternalInterfaceServer) UserAuthentication(context.Context, *UserAuthenticationRequest) (*UserAuthenticationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UserAuthentication not implemented")
}
func (UnimplementedExternalInterfaceServer) BatteryState(context.Context, *BatteryStateRequest) (*BatteryStateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BatteryState not implemented")
}
func (UnimplementedExternalInterfaceServer) VersionState(context.Context, *VersionStateRequest) (*VersionStateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method VersionState not implemented")
}
func (UnimplementedExternalInterfaceServer) SayText(context.Context, *SayTextRequest) (*SayTextResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SayText not implemented")
}
func (UnimplementedExternalInterfaceServer) ConnectCube(context.Context, *ConnectCubeRequest) (*ConnectCubeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConnectCube not implemented")
}
func (UnimplementedExternalInterfaceServer) DisconnectCube(context.Context, *DisconnectCubeRequest) (*DisconnectCubeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DisconnectCube not implemented")
}
func (UnimplementedExternalInterfaceServer) CubesAvailable(context.Context, *CubesAvailableRequest) (*CubesAvailableResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CubesAvailable not implemented")
}
func (UnimplementedExternalInterfaceServer) FlashCubeLights(context.Context, *FlashCubeLightsRequest) (*FlashCubeLightsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FlashCubeLights not implemented")
}
func (UnimplementedExternalInterfaceServer) ForgetPreferredCube(context.Context, *ForgetPreferredCubeRequest) (*ForgetPreferredCubeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ForgetPreferredCube not implemented")
}
func (UnimplementedExternalInterfaceServer) SetPreferredCube(context.Context, *SetPreferredCubeRequest) (*SetPreferredCubeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetPreferredCube not implemented")
}
func (UnimplementedExternalInterfaceServer) DeleteCustomObjects(context.Context, *DeleteCustomObjectsRequest) (*DeleteCustomObjectsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteCustomObjects not implemented")
}
func (UnimplementedExternalInterfaceServer) CreateFixedCustomObject(context.Context, *CreateFixedCustomObjectRequest) (*CreateFixedCustomObjectResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateFixedCustomObject not implemented")
}
func (UnimplementedExternalInterfaceServer) DefineCustomObject(context.Context, *DefineCustomObjectRequest) (*DefineCustomObjectResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DefineCustomObject not implemented")
}
func (UnimplementedExternalInterfaceServer) SetCubeLights(context.Context, *SetCubeLightsRequest) (*SetCubeLightsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetCubeLights not implemented")
}
func (UnimplementedExternalInterfaceServer) AudioFeed(*AudioFeedRequest, grpc.ServerStreamingServer[AudioFeedResponse]) error {
	return status.Errorf(codes.Unimplemented, "method AudioFeed not implemented")
}
func (UnimplementedExternalInterfaceServer) CameraFeed(*CameraFeedRequest, grpc.ServerStreamingServer[CameraFeedResponse]) error {
	return status.Errorf(codes.Unimplemented, "method CameraFeed not implemented")
}
func (UnimplementedExternalInterfaceServer) CaptureSingleImage(context.Context, *CaptureSingleImageRequest) (*CaptureSingleImageResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CaptureSingleImage not implemented")
}
func (UnimplementedExternalInterfaceServer) GetCameraConfig(context.Context, *CameraConfigRequest) (*CameraConfigResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCameraConfig not implemented")
}
func (UnimplementedExternalInterfaceServer) SetEyeColor(context.Context, *SetEyeColorRequest) (*SetEyeColorResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetEyeColor not implemented")
}
func (UnimplementedExternalInterfaceServer) NavMapFeed(*NavMapFeedRequest, grpc.ServerStreamingServer[NavMapFeedResponse]) error {
	return status.Errorf(codes.Unimplemented, "method NavMapFeed not implemented")
}
func (UnimplementedExternalInterfaceServer) SetCameraSettings(context.Context, *SetCameraSettingsRequest) (*SetCameraSettingsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetCameraSettings not implemented")
}
func (UnimplementedExternalInterfaceServer) AppIntent(context.Context, *AppIntentRequest) (*AppIntentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AppIntent not implemented")
}
func (UnimplementedExternalInterfaceServer) GetOnboardingState(context.Context, *OnboardingStateRequest) (*OnboardingStateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetOnboardingState not implemented")
}
func (UnimplementedExternalInterfaceServer) SendOnboardingInput(context.Context, *OnboardingInputRequest) (*OnboardingInputResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendOnboardingInput not implemented")
}
func (UnimplementedExternalInterfaceServer) GetLatestAttentionTransfer(context.Context, *LatestAttentionTransferRequest) (*LatestAttentionTransferResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLatestAttentionTransfer not implemented")
}
func (UnimplementedExternalInterfaceServer) PullJdocs(context.Context, *PullJdocsRequest) (*PullJdocsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PullJdocs not implemented")
}
func (UnimplementedExternalInterfaceServer) UpdateSettings(context.Context, *UpdateSettingsRequest) (*UpdateSettingsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateSettings not implemented")
}
func (UnimplementedExternalInterfaceServer) UpdateAccountSettings(context.Context, *UpdateAccountSettingsRequest) (*UpdateAccountSettingsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateAccountSettings not implemented")
}
func (UnimplementedExternalInterfaceServer) UpdateUserEntitlements(context.Context, *UpdateUserEntitlementsRequest) (*UpdateUserEntitlementsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateUserEntitlements not implemented")
}
func (UnimplementedExternalInterfaceServer) StartUpdateEngine(context.Context, *CheckUpdateStatusRequest) (*CheckUpdateStatusResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StartUpdateEngine not implemented")
}
func (UnimplementedExternalInterfaceServer) CheckUpdateStatus(context.Context, *CheckUpdateStatusRequest) (*CheckUpdateStatusResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CheckUpdateStatus not implemented")
}
func (UnimplementedExternalInterfaceServer) UpdateAndRestart(context.Context, *UpdateAndRestartRequest) (*UpdateAndRestartResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateAndRestart not implemented")
}
func (UnimplementedExternalInterfaceServer) UploadDebugLogs(context.Context, *UploadDebugLogsRequest) (*UploadDebugLogsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UploadDebugLogs not implemented")
}
func (UnimplementedExternalInterfaceServer) CheckCloudConnection(context.Context, *CheckCloudRequest) (*CheckCloudResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CheckCloudConnection not implemented")
}
func (UnimplementedExternalInterfaceServer) GetFeatureFlag(context.Context, *FeatureFlagRequest) (*FeatureFlagResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFeatureFlag not implemented")
}
func (UnimplementedExternalInterfaceServer) GetFeatureFlagList(context.Context, *FeatureFlagListRequest) (*FeatureFlagListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFeatureFlagList not implemented")
}
func (UnimplementedExternalInterfaceServer) GetAlexaAuthState(context.Context, *AlexaAuthStateRequest) (*AlexaAuthStateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAlexaAuthState not implemented")
}
func (UnimplementedExternalInterfaceServer) AlexaOptIn(context.Context, *AlexaOptInRequest) (*AlexaOptInResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AlexaOptIn not implemented")
}
func (UnimplementedExternalInterfaceServer) AssumeBehaviorControl(*BehaviorControlRequest, grpc.ServerStreamingServer[BehaviorControlResponse]) error {
	return status.Errorf(codes.Unimplemented, "method AssumeBehaviorControl not implemented")
}
func (UnimplementedExternalInterfaceServer) mustEmbedUnimplementedExternalInterfaceServer() {}
func (UnimplementedExternalInterfaceServer) testEmbeddedByValue()                           {}

// UnsafeExternalInterfaceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to ExternalInterfaceServer will
// result in compilation errors.
type UnsafeExternalInterfaceServer interface {
	mustEmbedUnimplementedExternalInterfaceServer()
}

func RegisterExternalInterfaceServer(s grpc.ServiceRegistrar, srv ExternalInterfaceServer) {
	// If the following call pancis, it indicates UnimplementedExternalInterfaceServer was
	// embedded by pointer and is nil.  This will cause panics if an
	// unimplemented method is ever invoked, so we test this at initialization
	// time to prevent it from happening at runtime later due to I/O.
	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
		t.testEmbeddedByValue()
	}
	s.RegisterService(&ExternalInterface_ServiceDesc, srv)
}

func _ExternalInterface_ProtocolVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ProtocolVersionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).ProtocolVersion(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_ProtocolVersion_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).ProtocolVersion(ctx, req.(*ProtocolVersionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SDKInitialization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SDKInitializationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SDKInitialization(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SDKInitialization_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SDKInitialization(ctx, req.(*SDKInitializationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DriveWheels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DriveWheelsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DriveWheels(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DriveWheels_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DriveWheels(ctx, req.(*DriveWheelsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_PlayAnimationTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PlayAnimationTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).PlayAnimationTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_PlayAnimationTrigger_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).PlayAnimationTrigger(ctx, req.(*PlayAnimationTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_PlayAnimation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PlayAnimationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).PlayAnimation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_PlayAnimation_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).PlayAnimation(ctx, req.(*PlayAnimationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_ListAnimations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListAnimationsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).ListAnimations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_ListAnimations_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).ListAnimations(ctx, req.(*ListAnimationsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_ListAnimationTriggers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListAnimationTriggersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).ListAnimationTriggers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_ListAnimationTriggers_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).ListAnimationTriggers(ctx, req.(*ListAnimationTriggersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_MoveHead_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MoveHeadRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).MoveHead(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_MoveHead_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).MoveHead(ctx, req.(*MoveHeadRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_MoveLift_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MoveLiftRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).MoveLift(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_MoveLift_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).MoveLift(ctx, req.(*MoveLiftRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_StopAllMotors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StopAllMotorsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).StopAllMotors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_StopAllMotors_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).StopAllMotors(ctx, req.(*StopAllMotorsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DisplayFaceImageRGB_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DisplayFaceImageRGBRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DisplayFaceImageRGB(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DisplayFaceImageRGB_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DisplayFaceImageRGB(ctx, req.(*DisplayFaceImageRGBRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EventStream_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(EventRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ExternalInterfaceServer).EventStream(m, &grpc.GenericServerStream[EventRequest, EventResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_EventStreamServer = grpc.ServerStreamingServer[EventResponse]

func _ExternalInterface_ExternalAudioStreamPlayback_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(ExternalInterfaceServer).ExternalAudioStreamPlayback(&grpc.GenericServerStream[ExternalAudioStreamRequest, ExternalAudioStreamResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_ExternalAudioStreamPlaybackServer = grpc.BidiStreamingServer[ExternalAudioStreamRequest, ExternalAudioStreamResponse]

func _ExternalInterface_BehaviorControl_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(ExternalInterfaceServer).BehaviorControl(&grpc.GenericServerStream[BehaviorControlRequest, BehaviorControlResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_BehaviorControlServer = grpc.BidiStreamingServer[BehaviorControlRequest, BehaviorControlResponse]

func _ExternalInterface_CancelFaceEnrollment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelFaceEnrollmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).CancelFaceEnrollment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_CancelFaceEnrollment_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).CancelFaceEnrollment(ctx, req.(*CancelFaceEnrollmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_RequestEnrolledNames_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RequestEnrolledNamesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).RequestEnrolledNames(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_RequestEnrolledNames_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).RequestEnrolledNames(ctx, req.(*RequestEnrolledNamesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_UpdateEnrolledFaceByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateEnrolledFaceByIDRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).UpdateEnrolledFaceByID(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_UpdateEnrolledFaceByID_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).UpdateEnrolledFaceByID(ctx, req.(*UpdateEnrolledFaceByIDRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EraseEnrolledFaceByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EraseEnrolledFaceByIDRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).EraseEnrolledFaceByID(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_EraseEnrolledFaceByID_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).EraseEnrolledFaceByID(ctx, req.(*EraseEnrolledFaceByIDRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EraseAllEnrolledFaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EraseAllEnrolledFacesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).EraseAllEnrolledFaces(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_EraseAllEnrolledFaces_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).EraseAllEnrolledFaces(ctx, req.(*EraseAllEnrolledFacesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SetFaceToEnroll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetFaceToEnrollRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SetFaceToEnroll(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SetFaceToEnroll_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SetFaceToEnroll(ctx, req.(*SetFaceToEnrollRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EnrollFace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnrollFaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).EnrollFace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_EnrollFace_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).EnrollFace(ctx, req.(*EnrollFaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EnableMarkerDetection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableMarkerDetectionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).EnableMarkerDetection(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_EnableMarkerDetection_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).EnableMarkerDetection(ctx, req.(*EnableMarkerDetectionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EnableFaceDetection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableFaceDetectionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).EnableFaceDetection(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_EnableFaceDetection_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).EnableFaceDetection(ctx, req.(*EnableFaceDetectionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EnableMotionDetection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableMotionDetectionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).EnableMotionDetection(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_EnableMotionDetection_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).EnableMotionDetection(ctx, req.(*EnableMotionDetectionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EnableMirrorMode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableMirrorModeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).EnableMirrorMode(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_EnableMirrorMode_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).EnableMirrorMode(ctx, req.(*EnableMirrorModeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_EnableImageStreaming_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableImageStreamingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).EnableImageStreaming(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_EnableImageStreaming_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).EnableImageStreaming(ctx, req.(*EnableImageStreamingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_IsImageStreamingEnabled_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(IsImageStreamingEnabledRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).IsImageStreamingEnabled(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_IsImageStreamingEnabled_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).IsImageStreamingEnabled(ctx, req.(*IsImageStreamingEnabledRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_CancelActionByIdTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelActionByIdTagRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).CancelActionByIdTag(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_CancelActionByIdTag_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).CancelActionByIdTag(ctx, req.(*CancelActionByIdTagRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_CancelBehavior_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelBehaviorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).CancelBehavior(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_CancelBehavior_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).CancelBehavior(ctx, req.(*CancelBehaviorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_GoToPose_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GoToPoseRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).GoToPose(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_GoToPose_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).GoToPose(ctx, req.(*GoToPoseRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DockWithCube_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DockWithCubeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DockWithCube(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DockWithCube_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DockWithCube(ctx, req.(*DockWithCubeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DriveOffCharger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DriveOffChargerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DriveOffCharger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DriveOffCharger_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DriveOffCharger(ctx, req.(*DriveOffChargerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DriveOnCharger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DriveOnChargerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DriveOnCharger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DriveOnCharger_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DriveOnCharger(ctx, req.(*DriveOnChargerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_FindFaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FindFacesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).FindFaces(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_FindFaces_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).FindFaces(ctx, req.(*FindFacesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_LookAroundInPlace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LookAroundInPlaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).LookAroundInPlace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_LookAroundInPlace_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).LookAroundInPlace(ctx, req.(*LookAroundInPlaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_RollBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RollBlockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).RollBlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_RollBlock_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).RollBlock(ctx, req.(*RollBlockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_PhotosInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PhotosInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).PhotosInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_PhotosInfo_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).PhotosInfo(ctx, req.(*PhotosInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_Photo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PhotoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).Photo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_Photo_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).Photo(ctx, req.(*PhotoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_Thumbnail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ThumbnailRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).Thumbnail(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_Thumbnail_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).Thumbnail(ctx, req.(*ThumbnailRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DeletePhoto_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeletePhotoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DeletePhoto(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DeletePhoto_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DeletePhoto(ctx, req.(*DeletePhotoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DriveStraight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DriveStraightRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DriveStraight(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DriveStraight_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DriveStraight(ctx, req.(*DriveStraightRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_TurnInPlace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TurnInPlaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).TurnInPlace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_TurnInPlace_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).TurnInPlace(ctx, req.(*TurnInPlaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SetHeadAngle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetHeadAngleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SetHeadAngle(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SetHeadAngle_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SetHeadAngle(ctx, req.(*SetHeadAngleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SetLiftHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetLiftHeightRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SetLiftHeight(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SetLiftHeight_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SetLiftHeight(ctx, req.(*SetLiftHeightRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_TurnTowardsFace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TurnTowardsFaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).TurnTowardsFace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_TurnTowardsFace_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).TurnTowardsFace(ctx, req.(*TurnTowardsFaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_GoToObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GoToObjectRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).GoToObject(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_GoToObject_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).GoToObject(ctx, req.(*GoToObjectRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_RollObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RollObjectRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).RollObject(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_RollObject_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).RollObject(ctx, req.(*RollObjectRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_PopAWheelie_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PopAWheelieRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).PopAWheelie(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_PopAWheelie_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).PopAWheelie(ctx, req.(*PopAWheelieRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_PickupObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PickupObjectRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).PickupObject(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_PickupObject_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).PickupObject(ctx, req.(*PickupObjectRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_PlaceObjectOnGroundHere_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PlaceObjectOnGroundHereRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).PlaceObjectOnGroundHere(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_PlaceObjectOnGroundHere_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).PlaceObjectOnGroundHere(ctx, req.(*PlaceObjectOnGroundHereRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SetMasterVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MasterVolumeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SetMasterVolume(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SetMasterVolume_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SetMasterVolume(ctx, req.(*MasterVolumeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_UserAuthentication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UserAuthenticationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).UserAuthentication(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_UserAuthentication_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).UserAuthentication(ctx, req.(*UserAuthenticationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_BatteryState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BatteryStateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).BatteryState(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_BatteryState_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).BatteryState(ctx, req.(*BatteryStateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_VersionState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VersionStateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).VersionState(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_VersionState_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).VersionState(ctx, req.(*VersionStateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SayText_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SayTextRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SayText(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SayText_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SayText(ctx, req.(*SayTextRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_ConnectCube_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ConnectCubeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).ConnectCube(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_ConnectCube_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).ConnectCube(ctx, req.(*ConnectCubeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DisconnectCube_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DisconnectCubeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DisconnectCube(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DisconnectCube_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DisconnectCube(ctx, req.(*DisconnectCubeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_CubesAvailable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CubesAvailableRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).CubesAvailable(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_CubesAvailable_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).CubesAvailable(ctx, req.(*CubesAvailableRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_FlashCubeLights_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FlashCubeLightsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).FlashCubeLights(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_FlashCubeLights_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).FlashCubeLights(ctx, req.(*FlashCubeLightsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_ForgetPreferredCube_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ForgetPreferredCubeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).ForgetPreferredCube(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_ForgetPreferredCube_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).ForgetPreferredCube(ctx, req.(*ForgetPreferredCubeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SetPreferredCube_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetPreferredCubeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SetPreferredCube(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SetPreferredCube_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SetPreferredCube(ctx, req.(*SetPreferredCubeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DeleteCustomObjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteCustomObjectsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DeleteCustomObjects(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DeleteCustomObjects_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DeleteCustomObjects(ctx, req.(*DeleteCustomObjectsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_CreateFixedCustomObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateFixedCustomObjectRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).CreateFixedCustomObject(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_CreateFixedCustomObject_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).CreateFixedCustomObject(ctx, req.(*CreateFixedCustomObjectRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_DefineCustomObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DefineCustomObjectRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).DefineCustomObject(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_DefineCustomObject_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).DefineCustomObject(ctx, req.(*DefineCustomObjectRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SetCubeLights_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetCubeLightsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SetCubeLights(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SetCubeLights_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SetCubeLights(ctx, req.(*SetCubeLightsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_AudioFeed_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(AudioFeedRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ExternalInterfaceServer).AudioFeed(m, &grpc.GenericServerStream[AudioFeedRequest, AudioFeedResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_AudioFeedServer = grpc.ServerStreamingServer[AudioFeedResponse]

func _ExternalInterface_CameraFeed_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(CameraFeedRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ExternalInterfaceServer).CameraFeed(m, &grpc.GenericServerStream[CameraFeedRequest, CameraFeedResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_CameraFeedServer = grpc.ServerStreamingServer[CameraFeedResponse]

func _ExternalInterface_CaptureSingleImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CaptureSingleImageRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).CaptureSingleImage(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_CaptureSingleImage_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).CaptureSingleImage(ctx, req.(*CaptureSingleImageRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_GetCameraConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CameraConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).GetCameraConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_GetCameraConfig_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).GetCameraConfig(ctx, req.(*CameraConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SetEyeColor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetEyeColorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SetEyeColor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SetEyeColor_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SetEyeColor(ctx, req.(*SetEyeColorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_NavMapFeed_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(NavMapFeedRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ExternalInterfaceServer).NavMapFeed(m, &grpc.GenericServerStream[NavMapFeedRequest, NavMapFeedResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_NavMapFeedServer = grpc.ServerStreamingServer[NavMapFeedResponse]

func _ExternalInterface_SetCameraSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetCameraSettingsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SetCameraSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SetCameraSettings_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SetCameraSettings(ctx, req.(*SetCameraSettingsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_AppIntent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AppIntentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).AppIntent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_AppIntent_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).AppIntent(ctx, req.(*AppIntentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_GetOnboardingState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(OnboardingStateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).GetOnboardingState(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_GetOnboardingState_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).GetOnboardingState(ctx, req.(*OnboardingStateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_SendOnboardingInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(OnboardingInputRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).SendOnboardingInput(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_SendOnboardingInput_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).SendOnboardingInput(ctx, req.(*OnboardingInputRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_GetLatestAttentionTransfer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LatestAttentionTransferRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).GetLatestAttentionTransfer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_GetLatestAttentionTransfer_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).GetLatestAttentionTransfer(ctx, req.(*LatestAttentionTransferRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_PullJdocs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PullJdocsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).PullJdocs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_PullJdocs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).PullJdocs(ctx, req.(*PullJdocsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_UpdateSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateSettingsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).UpdateSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_UpdateSettings_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).UpdateSettings(ctx, req.(*UpdateSettingsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_UpdateAccountSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateAccountSettingsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).UpdateAccountSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_UpdateAccountSettings_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).UpdateAccountSettings(ctx, req.(*UpdateAccountSettingsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_UpdateUserEntitlements_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateUserEntitlementsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).UpdateUserEntitlements(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_UpdateUserEntitlements_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).UpdateUserEntitlements(ctx, req.(*UpdateUserEntitlementsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_StartUpdateEngine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CheckUpdateStatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).StartUpdateEngine(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_StartUpdateEngine_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).StartUpdateEngine(ctx, req.(*CheckUpdateStatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_CheckUpdateStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CheckUpdateStatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).CheckUpdateStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_CheckUpdateStatus_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).CheckUpdateStatus(ctx, req.(*CheckUpdateStatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_UpdateAndRestart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateAndRestartRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).UpdateAndRestart(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_UpdateAndRestart_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).UpdateAndRestart(ctx, req.(*UpdateAndRestartRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_UploadDebugLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UploadDebugLogsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).UploadDebugLogs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_UploadDebugLogs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).UploadDebugLogs(ctx, req.(*UploadDebugLogsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_CheckCloudConnection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CheckCloudRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).CheckCloudConnection(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_CheckCloudConnection_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).CheckCloudConnection(ctx, req.(*CheckCloudRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_GetFeatureFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FeatureFlagRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).GetFeatureFlag(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_GetFeatureFlag_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).GetFeatureFlag(ctx, req.(*FeatureFlagRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_GetFeatureFlagList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FeatureFlagListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).GetFeatureFlagList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_GetFeatureFlagList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).GetFeatureFlagList(ctx, req.(*FeatureFlagListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_GetAlexaAuthState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AlexaAuthStateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).GetAlexaAuthState(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_GetAlexaAuthState_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).GetAlexaAuthState(ctx, req.(*AlexaAuthStateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_AlexaOptIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AlexaOptInRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExternalInterfaceServer).AlexaOptIn(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExternalInterface_AlexaOptIn_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExternalInterfaceServer).AlexaOptIn(ctx, req.(*AlexaOptInRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExternalInterface_AssumeBehaviorControl_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(BehaviorControlRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ExternalInterfaceServer).AssumeBehaviorControl(m, &grpc.GenericServerStream[BehaviorControlRequest, BehaviorControlResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ExternalInterface_AssumeBehaviorControlServer = grpc.ServerStreamingServer[BehaviorControlResponse]

// ExternalInterface_ServiceDesc is the grpc.ServiceDesc for ExternalInterface service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var ExternalInterface_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "Anki.Vector.external_interface.ExternalInterface",
	HandlerType: (*ExternalInterfaceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ProtocolVersion",
			Handler:    _ExternalInterface_ProtocolVersion_Handler,
		},
		{
			MethodName: "SDKInitialization",
			Handler:    _ExternalInterface_SDKInitialization_Handler,
		},
		{
			MethodName: "DriveWheels",
			Handler:    _ExternalInterface_DriveWheels_Handler,
		},
		{
			MethodName: "PlayAnimationTrigger",
			Handler:    _ExternalInterface_PlayAnimationTrigger_Handler,
		},
		{
			MethodName: "PlayAnimation",
			Handler:    _ExternalInterface_PlayAnimation_Handler,
		},
		{
			MethodName: "ListAnimations",
			Handler:    _ExternalInterface_ListAnimations_Handler,
		},
		{
			MethodName: "ListAnimationTriggers",
			Handler:    _ExternalInterface_ListAnimationTriggers_Handler,
		},
		{
			MethodName: "MoveHead",
			Handler:    _ExternalInterface_MoveHead_Handler,
		},
		{
			MethodName: "MoveLift",
			Handler:    _ExternalInterface_MoveLift_Handler,
		},
		{
			MethodName: "StopAllMotors",
			Handler:    _ExternalInterface_StopAllMotors_Handler,
		},
		{
			MethodName: "DisplayFaceImageRGB",
			Handler:    _ExternalInterface_DisplayFaceImageRGB_Handler,
		},
		{
			MethodName: "CancelFaceEnrollment",
			Handler:    _ExternalInterface_CancelFaceEnrollment_Handler,
		},
		{
			MethodName: "RequestEnrolledNames",
			Handler:    _ExternalInterface_RequestEnrolledNames_Handler,
		},
		{
			MethodName: "UpdateEnrolledFaceByID",
			Handler:    _ExternalInterface_UpdateEnrolledFaceByID_Handler,
		},
		{
			MethodName: "EraseEnrolledFaceByID",
			Handler:    _ExternalInterface_EraseEnrolledFaceByID_Handler,
		},
		{
			MethodName: "EraseAllEnrolledFaces",
			Handler:    _ExternalInterface_EraseAllEnrolledFaces_Handler,
		},
		{
			MethodName: "SetFaceToEnroll",
			Handler:    _ExternalInterface_SetFaceToEnroll_Handler,
		},
		{
			MethodName: "EnrollFace",
			Handler:    _ExternalInterface_EnrollFace_Handler,
		},
		{
			MethodName: "EnableMarkerDetection",
			Handler:    _ExternalInterface_EnableMarkerDetection_Handler,
		},
		{
			MethodName: "EnableFaceDetection",
			Handler:    _ExternalInterface_EnableFaceDetection_Handler,
		},
		{
			MethodName: "EnableMotionDetection",
			Handler:    _ExternalInterface_EnableMotionDetection_Handler,
		},
		{
			MethodName: "EnableMirrorMode",
			Handler:    _ExternalInterface_EnableMirrorMode_Handler,
		},
		{
			MethodName: "EnableImageStreaming",
			Handler:    _ExternalInterface_EnableImageStreaming_Handler,
		},
		{
			MethodName: "IsImageStreamingEnabled",
			Handler:    _ExternalInterface_IsImageStreamingEnabled_Handler,
		},
		{
			MethodName: "CancelActionByIdTag",
			Handler:    _ExternalInterface_CancelActionByIdTag_Handler,
		},
		{
			MethodName: "CancelBehavior",
			Handler:    _ExternalInterface_CancelBehavior_Handler,
		},
		{
			MethodName: "GoToPose",
			Handler:    _ExternalInterface_GoToPose_Handler,
		},
		{
			MethodName: "DockWithCube",
			Handler:    _ExternalInterface_DockWithCube_Handler,
		},
		{
			MethodName: "DriveOffCharger",
			Handler:    _ExternalInterface_DriveOffCharger_Handler,
		},
		{
			MethodName: "DriveOnCharger",
			Handler:    _ExternalInterface_DriveOnCharger_Handler,
		},
		{
			MethodName: "FindFaces",
			Handler:    _ExternalInterface_FindFaces_Handler,
		},
		{
			MethodName: "LookAroundInPlace",
			Handler:    _ExternalInterface_LookAroundInPlace_Handler,
		},
		{
			MethodName: "RollBlock",
			Handler:    _ExternalInterface_RollBlock_Handler,
		},
		{
			MethodName: "PhotosInfo",
			Handler:    _ExternalInterface_PhotosInfo_Handler,
		},
		{
			MethodName: "Photo",
			Handler:    _ExternalInterface_Photo_Handler,
		},
		{
			MethodName: "Thumbnail",
			Handler:    _ExternalInterface_Thumbnail_Handler,
		},
		{
			MethodName: "DeletePhoto",
			Handler:    _ExternalInterface_DeletePhoto_Handler,
		},
		{
			MethodName: "DriveStraight",
			Handler:    _ExternalInterface_DriveStraight_Handler,
		},
		{
			MethodName: "TurnInPlace",
			Handler:    _ExternalInterface_TurnInPlace_Handler,
		},
		{
			MethodName: "SetHeadAngle",
			Handler:    _ExternalInterface_SetHeadAngle_Handler,
		},
		{
			MethodName: "SetLiftHeight",
			Handler:    _ExternalInterface_SetLiftHeight_Handler,
		},
		{
			MethodName: "TurnTowardsFace",
			Handler:    _ExternalInterface_TurnTowardsFace_Handler,
		},
		{
			MethodName: "GoToObject",
			Handler:    _ExternalInterface_GoToObject_Handler,
		},
		{
			MethodName: "RollObject",
			Handler:    _ExternalInterface_RollObject_Handler,
		},
		{
			MethodName: "PopAWheelie",
			Handler:    _ExternalInterface_PopAWheelie_Handler,
		},
		{
			MethodName: "PickupObject",
			Handler:    _ExternalInterface_PickupObject_Handler,
		},
		{
			MethodName: "PlaceObjectOnGroundHere",
			Handler:    _ExternalInterface_PlaceObjectOnGroundHere_Handler,
		},
		{
			MethodName: "SetMasterVolume",
			Handler:    _ExternalInterface_SetMasterVolume_Handler,
		},
		{
			MethodName: "UserAuthentication",
			Handler:    _ExternalInterface_UserAuthentication_Handler,
		},
		{
			MethodName: "BatteryState",
			Handler:    _ExternalInterface_BatteryState_Handler,
		},
		{
			MethodName: "VersionState",
			Handler:    _ExternalInterface_VersionState_Handler,
		},
		{
			MethodName: "SayText",
			Handler:    _ExternalInterface_SayText_Handler,
		},
		{
			MethodName: "ConnectCube",
			Handler:    _ExternalInterface_ConnectCube_Handler,
		},
		{
			MethodName: "DisconnectCube",
			Handler:    _ExternalInterface_DisconnectCube_Handler,
		},
		{
			MethodName: "CubesAvailable",
			Handler:    _ExternalInterface_CubesAvailable_Handler,
		},
		{
			MethodName: "FlashCubeLights",
			Handler:    _ExternalInterface_FlashCubeLights_Handler,
		},
		{
			MethodName: "ForgetPreferredCube",
			Handler:    _ExternalInterface_ForgetPreferredCube_Handler,
		},
		{
			MethodName: "SetPreferredCube",
			Handler:    _ExternalInterface_SetPreferredCube_Handler,
		},
		{
			MethodName: "DeleteCustomObjects",
			Handler:    _ExternalInterface_DeleteCustomObjects_Handler,
		},
		{
			MethodName: "CreateFixedCustomObject",
			Handler:    _ExternalInterface_CreateFixedCustomObject_Handler,
		},
		{
			MethodName: "DefineCustomObject",
			Handler:    _ExternalInterface_DefineCustomObject_Handler,
		},
		{
			MethodName: "SetCubeLights",
			Handler:    _ExternalInterface_SetCubeLights_Handler,
		},
		{
			MethodName: "CaptureSingleImage",
			Handler:    _ExternalInterface_CaptureSingleImage_Handler,
		},
		{
			MethodName: "GetCameraConfig",
			Handler:    _ExternalInterface_GetCameraConfig_Handler,
		},
		{
			MethodName: "SetEyeColor",
			Handler:    _ExternalInterface_SetEyeColor_Handler,
		},
		{
			MethodName: "SetCameraSettings",
			Handler:    _ExternalInterface_SetCameraSettings_Handler,
		},
		{
			MethodName: "AppIntent",
			Handler:    _ExternalInterface_AppIntent_Handler,
		},
		{
			MethodName: "GetOnboardingState",
			Handler:    _ExternalInterface_GetOnboardingState_Handler,
		},
		{
			MethodName: "SendOnboardingInput",
			Handler:    _ExternalInterface_SendOnboardingInput_Handler,
		},
		{
			MethodName: "GetLatestAttentionTransfer",
			Handler:    _ExternalInterface_GetLatestAttentionTransfer_Handler,
		},
		{
			MethodName: "PullJdocs",
			Handler:    _ExternalInterface_PullJdocs_Handler,
		},
		{
			MethodName: "UpdateSettings",
			Handler:    _ExternalInterface_UpdateSettings_Handler,
		},
		{
			MethodName: "UpdateAccountSettings",
			Handler:    _ExternalInterface_UpdateAccountSettings_Handler,
		},
		{
			MethodName: "UpdateUserEntitlements",
			Handler:    _ExternalInterface_UpdateUserEntitlements_Handler,
		},
		{
			MethodName: "StartUpdateEngine",
			Handler:    _ExternalInterface_StartUpdateEngine_Handler,
		},
		{
			MethodName: "CheckUpdateStatus",
			Handler:    _ExternalInterface_CheckUpdateStatus_Handler,
		},
		{
			MethodName: "UpdateAndRestart",
			Handler:    _ExternalInterface_UpdateAndRestart_Handler,
		},
		{
			MethodName: "UploadDebugLogs",
			Handler:    _ExternalInterface_UploadDebugLogs_Handler,
		},
		{
			MethodName: "CheckCloudConnection",
			Handler:    _ExternalInterface_CheckCloudConnection_Handler,
		},
		{
			MethodName: "GetFeatureFlag",
			Handler:    _ExternalInterface_GetFeatureFlag_Handler,
		},
		{
			MethodName: "GetFeatureFlagList",
			Handler:    _ExternalInterface_GetFeatureFlagList_Handler,
		},
		{
			MethodName: "GetAlexaAuthState",
			Handler:    _ExternalInterface_GetAlexaAuthState_Handler,
		},
		{
			MethodName: "AlexaOptIn",
			Handler:    _ExternalInterface_AlexaOptIn_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "EventStream",
			Handler:       _ExternalInterface_EventStream_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ExternalAudioStreamPlayback",
			Handler:       _ExternalInterface_ExternalAudioStreamPlayback_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "BehaviorControl",
			Handler:       _ExternalInterface_BehaviorControl_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "AudioFeed",
			Handler:       _ExternalInterface_AudioFeed_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "CameraFeed",
			Handler:       _ExternalInterface_CameraFeed_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "NavMapFeed",
			Handler:       _ExternalInterface_NavMapFeed_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "AssumeBehaviorControl",
			Handler:       _ExternalInterface_AssumeBehaviorControl_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "external_interface.proto",
}
