import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { CommandResult } from "./VehicleCommon"; export declare const protobufPackage = ""; /** * Arm or disarm the vehicle. ArduPilot semantics: arming clears motor * safeties; disarming forces motor outputs to neutral. Maps onto MAVLink * MAV_CMD_COMPONENT_ARM_DISARM. */ export interface ArmRequest { timestamp: Date | undefined; /** true = arm, false = disarm */ arm: boolean; } export interface ArmResponse { result: CommandResult; rawAutopilotResult: number; detail: string; } /** * Change the vehicle's operating mode. The mode name is interpreted by * the connector (ArduPilot accepts both symbolic names like "MANUAL", * "GUIDED", "AUTO" and numeric custom-mode ids). Maps onto MAVLink * MAV_CMD_DO_SET_MODE (COMMAND_LONG path -- gives us a COMMAND_ACK). */ export interface SetModeRequest { timestamp: Date | undefined; mode: string; } export interface SetModeResponse { result: CommandResult; rawAutopilotResult: number; detail: string; /** * Mode the autopilot reports as active after the call, polled from * HEARTBEAT briefly post-ACK. Empty if not observed within the wait * window (HEARTBEAT typically arrives at 1 Hz). */ modeActual: string; } /** * Trigger emergency stop -- forces motor outputs off and disarms. Calling * this RPC at all is the signal; there is no "stop=false". * * The MAVLink mapping is vehicle-class dependent: ground rovers and * surface boats run ArduPilot Rover firmware, which does not implement * flight termination, so they are force-disarmed via * MAV_CMD_COMPONENT_ARM_DISARM (force). All other vehicle classes use * MAV_CMD_DO_FLIGHTTERMINATION. */ export interface EmergencyStopRequest { timestamp: Date | undefined; } export interface EmergencyStopResponse { result: CommandResult; rawAutopilotResult: number; detail: string; } export declare const ArmRequest: MessageFns; export declare const ArmResponse: MessageFns; export declare const SetModeRequest: MessageFns; export declare const SetModeResponse: MessageFns; export declare const EmergencyStopRequest: MessageFns; export declare const EmergencyStopResponse: MessageFns; export interface VehicleLifecycle { arm(request: ArmRequest): Promise; set_mode(request: SetModeRequest): Promise; emergency_stop(request: EmergencyStopRequest): Promise; } export declare const VehicleLifecycleServiceName = "VehicleLifecycle"; export declare class VehicleLifecycleClientImpl implements VehicleLifecycle { private readonly rpc; private readonly service; constructor(rpc: Rpc, opts?: { service?: string; }); arm(request: ArmRequest): Promise; set_mode(request: SetModeRequest): Promise; emergency_stop(request: EmergencyStopRequest): Promise; } interface Rpc { request(service: string, method: string, data: Uint8Array): Promise; } type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & { [K in Exclude>]: never; }; export interface MessageFns { encode(message: T, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): T; fromJSON(object: any): T; toJSON(message: T): unknown; create, I>>(base?: I): T; fromPartial, I>>(object: I): T; } export {};