UNPKG

spot-sdk-ts

Version:

TypeScript bindings based on protobufs (proto3) provided by Boston Dynamics

2,553 lines 103 kB
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetMissionResponse = exports.GetMissionRequest = exports.StopMissionResponse = exports.StopMissionRequest = exports.PauseMissionResponse = exports.PauseMissionRequest = exports.GetInfoResponse = exports.GetInfoRequest = exports.LoadMissionResponse = exports.LoadMissionRequest = exports.RestartMissionResponse = exports.RestartMissionRequest = exports.PlayMissionResponse = exports.PlaySettings = exports.PlayMissionRequest = exports.FailedNode = exports.NodeInfo = exports.MissionInfo = exports.AnswerQuestionResponse = exports.AnswerQuestionRequest = exports.Question = exports.State_NodeStatesAtTick_NodeState = exports.State_NodeStatesAtTick = exports.State_AnsweredQuestion = exports.State = exports.GetStateResponse = exports.GetStateRequest = exports.stopMissionResponse_StatusToJSON = exports.stopMissionResponse_StatusFromJSON = exports.StopMissionResponse_Status = exports.pauseMissionResponse_StatusToJSON = exports.pauseMissionResponse_StatusFromJSON = exports.PauseMissionResponse_Status = exports.loadMissionResponse_StatusToJSON = exports.loadMissionResponse_StatusFromJSON = exports.LoadMissionResponse_Status = exports.restartMissionResponse_StatusToJSON = exports.restartMissionResponse_StatusFromJSON = exports.RestartMissionResponse_Status = exports.playMissionResponse_StatusToJSON = exports.playMissionResponse_StatusFromJSON = exports.PlayMissionResponse_Status = exports.answerQuestionResponse_StatusToJSON = exports.answerQuestionResponse_StatusFromJSON = exports.AnswerQuestionResponse_Status = exports.state_StatusToJSON = exports.state_StatusFromJSON = exports.State_Status = exports.protobufPackage = void 0;
/* eslint-disable */
const util_1 = require("./util");
const timestamp_1 = require("../../../google/protobuf/timestamp");
const long_1 = __importDefault(require("long"));
const header_1 = require("../header");
const nodes_1 = require("./nodes");
const lease_1 = require("../lease");
const geometry_1 = require("../geometry");
const minimal_1 = __importDefault(require("protobufjs/minimal"));
const wrappers_1 = require("../../../google/protobuf/wrappers");
exports.protobufPackage = "bosdyn.api.mission";
/** Possible overall status states of the mission. */
var State_Status;
(function (State_Status) {
    /** STATUS_UNKNOWN - Invalid status, do not use. */
    State_Status[State_Status["STATUS_UNKNOWN"] = 0] = "STATUS_UNKNOWN";
    /** STATUS_FAILURE - The mission has failed due to a node failure. */
    State_Status[State_Status["STATUS_FAILURE"] = 1] = "STATUS_FAILURE";
    /** STATUS_RUNNING - The mission is still running. */
    State_Status[State_Status["STATUS_RUNNING"] = 2] = "STATUS_RUNNING";
    /** STATUS_SUCCESS - The mission succeeded! */
    State_Status[State_Status["STATUS_SUCCESS"] = 3] = "STATUS_SUCCESS";
    /** STATUS_PAUSED - Execution has been paused. */
    State_Status[State_Status["STATUS_PAUSED"] = 4] = "STATUS_PAUSED";
    /** STATUS_ERROR - The mission service itself encountered an unexpected error, outside of a node failing. */
    State_Status[State_Status["STATUS_ERROR"] = 5] = "STATUS_ERROR";
    /** STATUS_NONE - No mission has been loaded. */
    State_Status[State_Status["STATUS_NONE"] = 6] = "STATUS_NONE";
    /** STATUS_STOPPED - The mission was stopped before completion. */
    State_Status[State_Status["STATUS_STOPPED"] = 7] = "STATUS_STOPPED";
    State_Status[State_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(State_Status = exports.State_Status || (exports.State_Status = {}));
function state_StatusFromJSON(object) {
    switch (object) {
        case 0:
        case "STATUS_UNKNOWN":
            return State_Status.STATUS_UNKNOWN;
        case 1:
        case "STATUS_FAILURE":
            return State_Status.STATUS_FAILURE;
        case 2:
        case "STATUS_RUNNING":
            return State_Status.STATUS_RUNNING;
        case 3:
        case "STATUS_SUCCESS":
            return State_Status.STATUS_SUCCESS;
        case 4:
        case "STATUS_PAUSED":
            return State_Status.STATUS_PAUSED;
        case 5:
        case "STATUS_ERROR":
            return State_Status.STATUS_ERROR;
        case 6:
        case "STATUS_NONE":
            return State_Status.STATUS_NONE;
        case 7:
        case "STATUS_STOPPED":
            return State_Status.STATUS_STOPPED;
        case -1:
        case "UNRECOGNIZED":
        default:
            return State_Status.UNRECOGNIZED;
    }
}
exports.state_StatusFromJSON = state_StatusFromJSON;
function state_StatusToJSON(object) {
    switch (object) {
        case State_Status.STATUS_UNKNOWN:
            return "STATUS_UNKNOWN";
        case State_Status.STATUS_FAILURE:
            return "STATUS_FAILURE";
        case State_Status.STATUS_RUNNING:
            return "STATUS_RUNNING";
        case State_Status.STATUS_SUCCESS:
            return "STATUS_SUCCESS";
        case State_Status.STATUS_PAUSED:
            return "STATUS_PAUSED";
        case State_Status.STATUS_ERROR:
            return "STATUS_ERROR";
        case State_Status.STATUS_NONE:
            return "STATUS_NONE";
        case State_Status.STATUS_STOPPED:
            return "STATUS_STOPPED";
        case State_Status.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.state_StatusToJSON = state_StatusToJSON;
/** Possible results for answering a question. */
var AnswerQuestionResponse_Status;
(function (AnswerQuestionResponse_Status) {
    /** STATUS_UNKNOWN - Invalid; do not use. */
    AnswerQuestionResponse_Status[AnswerQuestionResponse_Status["STATUS_UNKNOWN"] = 0] = "STATUS_UNKNOWN";
    /** STATUS_OK - Answer accepted. */
    AnswerQuestionResponse_Status[AnswerQuestionResponse_Status["STATUS_OK"] = 1] = "STATUS_OK";
    /** STATUS_INVALID_QUESTION_ID - Question ID is not valid / unknown by the mission service. */
    AnswerQuestionResponse_Status[AnswerQuestionResponse_Status["STATUS_INVALID_QUESTION_ID"] = 2] = "STATUS_INVALID_QUESTION_ID";
    /** STATUS_INVALID_CODE - Answer code is not applicable for the question indicated. */
    AnswerQuestionResponse_Status[AnswerQuestionResponse_Status["STATUS_INVALID_CODE"] = 3] = "STATUS_INVALID_CODE";
    /** STATUS_ALREADY_ANSWERED - Question was already answered. */
    AnswerQuestionResponse_Status[AnswerQuestionResponse_Status["STATUS_ALREADY_ANSWERED"] = 4] = "STATUS_ALREADY_ANSWERED";
    AnswerQuestionResponse_Status[AnswerQuestionResponse_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(AnswerQuestionResponse_Status = exports.AnswerQuestionResponse_Status || (exports.AnswerQuestionResponse_Status = {}));
function answerQuestionResponse_StatusFromJSON(object) {
    switch (object) {
        case 0:
        case "STATUS_UNKNOWN":
            return AnswerQuestionResponse_Status.STATUS_UNKNOWN;
        case 1:
        case "STATUS_OK":
            return AnswerQuestionResponse_Status.STATUS_OK;
        case 2:
        case "STATUS_INVALID_QUESTION_ID":
            return AnswerQuestionResponse_Status.STATUS_INVALID_QUESTION_ID;
        case 3:
        case "STATUS_INVALID_CODE":
            return AnswerQuestionResponse_Status.STATUS_INVALID_CODE;
        case 4:
        case "STATUS_ALREADY_ANSWERED":
            return AnswerQuestionResponse_Status.STATUS_ALREADY_ANSWERED;
        case -1:
        case "UNRECOGNIZED":
        default:
            return AnswerQuestionResponse_Status.UNRECOGNIZED;
    }
}
exports.answerQuestionResponse_StatusFromJSON = answerQuestionResponse_StatusFromJSON;
function answerQuestionResponse_StatusToJSON(object) {
    switch (object) {
        case AnswerQuestionResponse_Status.STATUS_UNKNOWN:
            return "STATUS_UNKNOWN";
        case AnswerQuestionResponse_Status.STATUS_OK:
            return "STATUS_OK";
        case AnswerQuestionResponse_Status.STATUS_INVALID_QUESTION_ID:
            return "STATUS_INVALID_QUESTION_ID";
        case AnswerQuestionResponse_Status.STATUS_INVALID_CODE:
            return "STATUS_INVALID_CODE";
        case AnswerQuestionResponse_Status.STATUS_ALREADY_ANSWERED:
            return "STATUS_ALREADY_ANSWERED";
        case AnswerQuestionResponse_Status.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.answerQuestionResponse_StatusToJSON = answerQuestionResponse_StatusToJSON;
/** Possible results for a play request. */
var PlayMissionResponse_Status;
(function (PlayMissionResponse_Status) {
    /** STATUS_UNKNOWN - Invalid status, do not use. */
    PlayMissionResponse_Status[PlayMissionResponse_Status["STATUS_UNKNOWN"] = 0] = "STATUS_UNKNOWN";
    /**
     * STATUS_OK - Mission is playing, or the mission has already completed.
     * Use GetStateResponse to tell the difference.
     */
    PlayMissionResponse_Status[PlayMissionResponse_Status["STATUS_OK"] = 1] = "STATUS_OK";
    /** STATUS_NO_MISSION - Call LoadMission first. */
    PlayMissionResponse_Status[PlayMissionResponse_Status["STATUS_NO_MISSION"] = 2] = "STATUS_NO_MISSION";
    PlayMissionResponse_Status[PlayMissionResponse_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(PlayMissionResponse_Status = exports.PlayMissionResponse_Status || (exports.PlayMissionResponse_Status = {}));
function playMissionResponse_StatusFromJSON(object) {
    switch (object) {
        case 0:
        case "STATUS_UNKNOWN":
            return PlayMissionResponse_Status.STATUS_UNKNOWN;
        case 1:
        case "STATUS_OK":
            return PlayMissionResponse_Status.STATUS_OK;
        case 2:
        case "STATUS_NO_MISSION":
            return PlayMissionResponse_Status.STATUS_NO_MISSION;
        case -1:
        case "UNRECOGNIZED":
        default:
            return PlayMissionResponse_Status.UNRECOGNIZED;
    }
}
exports.playMissionResponse_StatusFromJSON = playMissionResponse_StatusFromJSON;
function playMissionResponse_StatusToJSON(object) {
    switch (object) {
        case PlayMissionResponse_Status.STATUS_UNKNOWN:
            return "STATUS_UNKNOWN";
        case PlayMissionResponse_Status.STATUS_OK:
            return "STATUS_OK";
        case PlayMissionResponse_Status.STATUS_NO_MISSION:
            return "STATUS_NO_MISSION";
        case PlayMissionResponse_Status.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.playMissionResponse_StatusToJSON = playMissionResponse_StatusToJSON;
/** Possible results of requesting a restart. */
var RestartMissionResponse_Status;
(function (RestartMissionResponse_Status) {
    /** STATUS_UNKNOWN - Invalid status, do not use. */
    RestartMissionResponse_Status[RestartMissionResponse_Status["STATUS_UNKNOWN"] = 0] = "STATUS_UNKNOWN";
    /** STATUS_OK - Mission has restarted. */
    RestartMissionResponse_Status[RestartMissionResponse_Status["STATUS_OK"] = 1] = "STATUS_OK";
    /** STATUS_NO_MISSION - Call LoadMission first. */
    RestartMissionResponse_Status[RestartMissionResponse_Status["STATUS_NO_MISSION"] = 2] = "STATUS_NO_MISSION";
    /** STATUS_VALIDATE_ERROR - Validation failed. */
    RestartMissionResponse_Status[RestartMissionResponse_Status["STATUS_VALIDATE_ERROR"] = 3] = "STATUS_VALIDATE_ERROR";
    RestartMissionResponse_Status[RestartMissionResponse_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(RestartMissionResponse_Status = exports.RestartMissionResponse_Status || (exports.RestartMissionResponse_Status = {}));
function restartMissionResponse_StatusFromJSON(object) {
    switch (object) {
        case 0:
        case "STATUS_UNKNOWN":
            return RestartMissionResponse_Status.STATUS_UNKNOWN;
        case 1:
        case "STATUS_OK":
            return RestartMissionResponse_Status.STATUS_OK;
        case 2:
        case "STATUS_NO_MISSION":
            return RestartMissionResponse_Status.STATUS_NO_MISSION;
        case 3:
        case "STATUS_VALIDATE_ERROR":
            return RestartMissionResponse_Status.STATUS_VALIDATE_ERROR;
        case -1:
        case "UNRECOGNIZED":
        default:
            return RestartMissionResponse_Status.UNRECOGNIZED;
    }
}
exports.restartMissionResponse_StatusFromJSON = restartMissionResponse_StatusFromJSON;
function restartMissionResponse_StatusToJSON(object) {
    switch (object) {
        case RestartMissionResponse_Status.STATUS_UNKNOWN:
            return "STATUS_UNKNOWN";
        case RestartMissionResponse_Status.STATUS_OK:
            return "STATUS_OK";
        case RestartMissionResponse_Status.STATUS_NO_MISSION:
            return "STATUS_NO_MISSION";
        case RestartMissionResponse_Status.STATUS_VALIDATE_ERROR:
            return "STATUS_VALIDATE_ERROR";
        case RestartMissionResponse_Status.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.restartMissionResponse_StatusToJSON = restartMissionResponse_StatusToJSON;
/** Possible results of loading a mission. */
var LoadMissionResponse_Status;
(function (LoadMissionResponse_Status) {
    /** STATUS_UNKNOWN - Invalid status, do not use. */
    LoadMissionResponse_Status[LoadMissionResponse_Status["STATUS_UNKNOWN"] = 0] = "STATUS_UNKNOWN";
    /** STATUS_OK - The mission was loaded successfully. */
    LoadMissionResponse_Status[LoadMissionResponse_Status["STATUS_OK"] = 1] = "STATUS_OK";
    /** STATUS_COMPILE_ERROR - Load-time compilation failed. The mission was malformed. */
    LoadMissionResponse_Status[LoadMissionResponse_Status["STATUS_COMPILE_ERROR"] = 2] = "STATUS_COMPILE_ERROR";
    /** STATUS_VALIDATE_ERROR - Load-time validation failed. Some part of the mission was unable to initialize. */
    LoadMissionResponse_Status[LoadMissionResponse_Status["STATUS_VALIDATE_ERROR"] = 3] = "STATUS_VALIDATE_ERROR";
    LoadMissionResponse_Status[LoadMissionResponse_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(LoadMissionResponse_Status = exports.LoadMissionResponse_Status || (exports.LoadMissionResponse_Status = {}));
function loadMissionResponse_StatusFromJSON(object) {
    switch (object) {
        case 0:
        case "STATUS_UNKNOWN":
            return LoadMissionResponse_Status.STATUS_UNKNOWN;
        case 1:
        case "STATUS_OK":
            return LoadMissionResponse_Status.STATUS_OK;
        case 2:
        case "STATUS_COMPILE_ERROR":
            return LoadMissionResponse_Status.STATUS_COMPILE_ERROR;
        case 3:
        case "STATUS_VALIDATE_ERROR":
            return LoadMissionResponse_Status.STATUS_VALIDATE_ERROR;
        case -1:
        case "UNRECOGNIZED":
        default:
            return LoadMissionResponse_Status.UNRECOGNIZED;
    }
}
exports.loadMissionResponse_StatusFromJSON = loadMissionResponse_StatusFromJSON;
function loadMissionResponse_StatusToJSON(object) {
    switch (object) {
        case LoadMissionResponse_Status.STATUS_UNKNOWN:
            return "STATUS_UNKNOWN";
        case LoadMissionResponse_Status.STATUS_OK:
            return "STATUS_OK";
        case LoadMissionResponse_Status.STATUS_COMPILE_ERROR:
            return "STATUS_COMPILE_ERROR";
        case LoadMissionResponse_Status.STATUS_VALIDATE_ERROR:
            return "STATUS_VALIDATE_ERROR";
        case LoadMissionResponse_Status.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.loadMissionResponse_StatusToJSON = loadMissionResponse_StatusToJSON;
/** Possible results of a pause request. */
var PauseMissionResponse_Status;
(function (PauseMissionResponse_Status) {
    /** STATUS_UNKNOWN - Invalid status, do not use. */
    PauseMissionResponse_Status[PauseMissionResponse_Status["STATUS_UNKNOWN"] = 0] = "STATUS_UNKNOWN";
    /** STATUS_OK - Mission is paused or finished running. */
    PauseMissionResponse_Status[PauseMissionResponse_Status["STATUS_OK"] = 1] = "STATUS_OK";
    /**
     * STATUS_NO_MISSION_PLAYING - No mission has started playing.
     * NOT returned when two PauseMissionRequests are received back-to-back. In that case,
     * you will get STATUS_OK.
     */
    PauseMissionResponse_Status[PauseMissionResponse_Status["STATUS_NO_MISSION_PLAYING"] = 2] = "STATUS_NO_MISSION_PLAYING";
    PauseMissionResponse_Status[PauseMissionResponse_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(PauseMissionResponse_Status = exports.PauseMissionResponse_Status || (exports.PauseMissionResponse_Status = {}));
function pauseMissionResponse_StatusFromJSON(object) {
    switch (object) {
        case 0:
        case "STATUS_UNKNOWN":
            return PauseMissionResponse_Status.STATUS_UNKNOWN;
        case 1:
        case "STATUS_OK":
            return PauseMissionResponse_Status.STATUS_OK;
        case 2:
        case "STATUS_NO_MISSION_PLAYING":
            return PauseMissionResponse_Status.STATUS_NO_MISSION_PLAYING;
        case -1:
        case "UNRECOGNIZED":
        default:
            return PauseMissionResponse_Status.UNRECOGNIZED;
    }
}
exports.pauseMissionResponse_StatusFromJSON = pauseMissionResponse_StatusFromJSON;
function pauseMissionResponse_StatusToJSON(object) {
    switch (object) {
        case PauseMissionResponse_Status.STATUS_UNKNOWN:
            return "STATUS_UNKNOWN";
        case PauseMissionResponse_Status.STATUS_OK:
            return "STATUS_OK";
        case PauseMissionResponse_Status.STATUS_NO_MISSION_PLAYING:
            return "STATUS_NO_MISSION_PLAYING";
        case PauseMissionResponse_Status.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.pauseMissionResponse_StatusToJSON = pauseMissionResponse_StatusToJSON;
/** Possible results of a stop request. */
var StopMissionResponse_Status;
(function (StopMissionResponse_Status) {
    /** STATUS_UNKNOWN - Invalid status, do not use. */
    StopMissionResponse_Status[StopMissionResponse_Status["STATUS_UNKNOWN"] = 0] = "STATUS_UNKNOWN";
    /**
     * STATUS_OK - Mission is stopped/complete.
     * The mission state may be in any of the "complete states", e.g. if the mission completed
     * successfully before this RPC took effect, the mission will report STATUS_SUCCESS and not
     * STATUS_STOPPED.
     */
    StopMissionResponse_Status[StopMissionResponse_Status["STATUS_OK"] = 1] = "STATUS_OK";
    /**
     * STATUS_NO_MISSION_PLAYING - No mission has started playing.
     * NOT returned if the mission is already stopped. In that case, you will get STATUS_OK.
     */
    StopMissionResponse_Status[StopMissionResponse_Status["STATUS_NO_MISSION_PLAYING"] = 2] = "STATUS_NO_MISSION_PLAYING";
    StopMissionResponse_Status[StopMissionResponse_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(StopMissionResponse_Status = exports.StopMissionResponse_Status || (exports.StopMissionResponse_Status = {}));
function stopMissionResponse_StatusFromJSON(object) {
    switch (object) {
        case 0:
        case "STATUS_UNKNOWN":
            return StopMissionResponse_Status.STATUS_UNKNOWN;
        case 1:
        case "STATUS_OK":
            return StopMissionResponse_Status.STATUS_OK;
        case 2:
        case "STATUS_NO_MISSION_PLAYING":
            return StopMissionResponse_Status.STATUS_NO_MISSION_PLAYING;
        case -1:
        case "UNRECOGNIZED":
        default:
            return StopMissionResponse_Status.UNRECOGNIZED;
    }
}
exports.stopMissionResponse_StatusFromJSON = stopMissionResponse_StatusFromJSON;
function stopMissionResponse_StatusToJSON(object) {
    switch (object) {
        case StopMissionResponse_Status.STATUS_UNKNOWN:
            return "STATUS_UNKNOWN";
        case StopMissionResponse_Status.STATUS_OK:
            return "STATUS_OK";
        case StopMissionResponse_Status.STATUS_NO_MISSION_PLAYING:
            return "STATUS_NO_MISSION_PLAYING";
        case StopMissionResponse_Status.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.stopMissionResponse_StatusToJSON = stopMissionResponse_StatusToJSON;
function createBaseGetStateRequest() {
    return {
        header: undefined,
        historyUpperTickBound: undefined,
        historyLowerTickBound: undefined,
        historyPastTicks: undefined,
    };
}
exports.GetStateRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.historyUpperTickBound !== undefined) {
            wrappers_1.Int64Value.encode({ value: message.historyUpperTickBound }, writer.uint32(18).fork()).ldelim();
        }
        if (message.historyLowerTickBound !== undefined) {
            writer.uint32(24).int64(message.historyLowerTickBound);
        }
        if (message.historyPastTicks !== undefined) {
            writer.uint32(32).int64(message.historyPastTicks);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGetStateRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.historyUpperTickBound = wrappers_1.Int64Value.decode(reader, reader.uint32()).value;
                    break;
                case 3:
                    message.historyLowerTickBound = longToNumber(reader.int64());
                    break;
                case 4:
                    message.historyPastTicks = longToNumber(reader.int64());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
            historyUpperTickBound: isSet(object.historyUpperTickBound)
                ? Number(object.historyUpperTickBound)
                : undefined,
            historyLowerTickBound: isSet(object.historyLowerTickBound)
                ? Number(object.historyLowerTickBound)
                : undefined,
            historyPastTicks: isSet(object.historyPastTicks)
                ? Number(object.historyPastTicks)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        message.historyUpperTickBound !== undefined &&
            (obj.historyUpperTickBound = message.historyUpperTickBound);
        message.historyLowerTickBound !== undefined &&
            (obj.historyLowerTickBound = Math.round(message.historyLowerTickBound));
        message.historyPastTicks !== undefined &&
            (obj.historyPastTicks = Math.round(message.historyPastTicks));
        return obj;
    },
    fromPartial(object) {
        const message = createBaseGetStateRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        message.historyUpperTickBound = object.historyUpperTickBound ?? undefined;
        message.historyLowerTickBound = object.historyLowerTickBound ?? undefined;
        message.historyPastTicks = object.historyPastTicks ?? undefined;
        return message;
    },
};
function createBaseGetStateResponse() {
    return { header: undefined, state: undefined };
}
exports.GetStateResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.state !== undefined) {
            exports.State.encode(message.state, writer.uint32(18).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGetStateResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.state = exports.State.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            state: isSet(object.state) ? exports.State.fromJSON(object.state) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.state !== undefined &&
            (obj.state = message.state ? exports.State.toJSON(message.state) : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseGetStateResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.state =
            object.state !== undefined && object.state !== null
                ? exports.State.fromPartial(object.state)
                : undefined;
        return message;
    },
};
function createBaseState() {
    return {
        questions: [],
        answeredQuestions: [],
        history: [],
        status: 0,
        error: "",
        tickCounter: 0,
        missionId: 0,
    };
}
exports.State = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        for (const v of message.questions) {
            exports.Question.encode(v, writer.uint32(10).fork()).ldelim();
        }
        for (const v of message.answeredQuestions) {
            exports.State_AnsweredQuestion.encode(v, writer.uint32(18).fork()).ldelim();
        }
        for (const v of message.history) {
            exports.State_NodeStatesAtTick.encode(v, writer.uint32(26).fork()).ldelim();
        }
        if (message.status !== 0) {
            writer.uint32(32).int32(message.status);
        }
        if (message.error !== "") {
            writer.uint32(42).string(message.error);
        }
        if (message.tickCounter !== 0) {
            writer.uint32(48).int64(message.tickCounter);
        }
        if (message.missionId !== 0) {
            writer.uint32(56).int64(message.missionId);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseState();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.questions.push(exports.Question.decode(reader, reader.uint32()));
                    break;
                case 2:
                    message.answeredQuestions.push(exports.State_AnsweredQuestion.decode(reader, reader.uint32()));
                    break;
                case 3:
                    message.history.push(exports.State_NodeStatesAtTick.decode(reader, reader.uint32()));
                    break;
                case 4:
                    message.status = reader.int32();
                    break;
                case 5:
                    message.error = reader.string();
                    break;
                case 6:
                    message.tickCounter = longToNumber(reader.int64());
                    break;
                case 7:
                    message.missionId = longToNumber(reader.int64());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            questions: Array.isArray(object?.questions)
                ? object.questions.map((e) => exports.Question.fromJSON(e))
                : [],
            answeredQuestions: Array.isArray(object?.answeredQuestions)
                ? object.answeredQuestions.map((e) => exports.State_AnsweredQuestion.fromJSON(e))
                : [],
            history: Array.isArray(object?.history)
                ? object.history.map((e) => exports.State_NodeStatesAtTick.fromJSON(e))
                : [],
            status: isSet(object.status) ? state_StatusFromJSON(object.status) : 0,
            error: isSet(object.error) ? String(object.error) : "",
            tickCounter: isSet(object.tickCounter) ? Number(object.tickCounter) : 0,
            missionId: isSet(object.missionId) ? Number(object.missionId) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.questions) {
            obj.questions = message.questions.map((e) => e ? exports.Question.toJSON(e) : undefined);
        }
        else {
            obj.questions = [];
        }
        if (message.answeredQuestions) {
            obj.answeredQuestions = message.answeredQuestions.map((e) => e ? exports.State_AnsweredQuestion.toJSON(e) : undefined);
        }
        else {
            obj.answeredQuestions = [];
        }
        if (message.history) {
            obj.history = message.history.map((e) => e ? exports.State_NodeStatesAtTick.toJSON(e) : undefined);
        }
        else {
            obj.history = [];
        }
        message.status !== undefined &&
            (obj.status = state_StatusToJSON(message.status));
        message.error !== undefined && (obj.error = message.error);
        message.tickCounter !== undefined &&
            (obj.tickCounter = Math.round(message.tickCounter));
        message.missionId !== undefined &&
            (obj.missionId = Math.round(message.missionId));
        return obj;
    },
    fromPartial(object) {
        const message = createBaseState();
        message.questions =
            object.questions?.map((e) => exports.Question.fromPartial(e)) || [];
        message.answeredQuestions =
            object.answeredQuestions?.map((e) => exports.State_AnsweredQuestion.fromPartial(e)) || [];
        message.history =
            object.history?.map((e) => exports.State_NodeStatesAtTick.fromPartial(e)) || [];
        message.status = object.status ?? 0;
        message.error = object.error ?? "";
        message.tickCounter = object.tickCounter ?? 0;
        message.missionId = object.missionId ?? 0;
        return message;
    },
};
function createBaseState_AnsweredQuestion() {
    return { question: undefined, acceptedAnswerCode: 0 };
}
exports.State_AnsweredQuestion = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.question !== undefined) {
            exports.Question.encode(message.question, writer.uint32(10).fork()).ldelim();
        }
        if (message.acceptedAnswerCode !== 0) {
            writer.uint32(16).int64(message.acceptedAnswerCode);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseState_AnsweredQuestion();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.question = exports.Question.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.acceptedAnswerCode = longToNumber(reader.int64());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            question: isSet(object.question)
                ? exports.Question.fromJSON(object.question)
                : undefined,
            acceptedAnswerCode: isSet(object.acceptedAnswerCode)
                ? Number(object.acceptedAnswerCode)
                : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        message.question !== undefined &&
            (obj.question = message.question
                ? exports.Question.toJSON(message.question)
                : undefined);
        message.acceptedAnswerCode !== undefined &&
            (obj.acceptedAnswerCode = Math.round(message.acceptedAnswerCode));
        return obj;
    },
    fromPartial(object) {
        const message = createBaseState_AnsweredQuestion();
        message.question =
            object.question !== undefined && object.question !== null
                ? exports.Question.fromPartial(object.question)
                : undefined;
        message.acceptedAnswerCode = object.acceptedAnswerCode ?? 0;
        return message;
    },
};
function createBaseState_NodeStatesAtTick() {
    return { tickCounter: 0, tickStartTimestamp: undefined, nodeStates: [] };
}
exports.State_NodeStatesAtTick = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.tickCounter !== 0) {
            writer.uint32(8).int64(message.tickCounter);
        }
        if (message.tickStartTimestamp !== undefined) {
            timestamp_1.Timestamp.encode(toTimestamp(message.tickStartTimestamp), writer.uint32(18).fork()).ldelim();
        }
        for (const v of message.nodeStates) {
            exports.State_NodeStatesAtTick_NodeState.encode(v, writer.uint32(26).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseState_NodeStatesAtTick();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.tickCounter = longToNumber(reader.int64());
                    break;
                case 2:
                    message.tickStartTimestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
                    break;
                case 3:
                    message.nodeStates.push(exports.State_NodeStatesAtTick_NodeState.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            tickCounter: isSet(object.tickCounter) ? Number(object.tickCounter) : 0,
            tickStartTimestamp: isSet(object.tickStartTimestamp)
                ? fromJsonTimestamp(object.tickStartTimestamp)
                : undefined,
            nodeStates: Array.isArray(object?.nodeStates)
                ? object.nodeStates.map((e) => exports.State_NodeStatesAtTick_NodeState.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        message.tickCounter !== undefined &&
            (obj.tickCounter = Math.round(message.tickCounter));
        message.tickStartTimestamp !== undefined &&
            (obj.tickStartTimestamp = message.tickStartTimestamp.toISOString());
        if (message.nodeStates) {
            obj.nodeStates = message.nodeStates.map((e) => e ? exports.State_NodeStatesAtTick_NodeState.toJSON(e) : undefined);
        }
        else {
            obj.nodeStates = [];
        }
        return obj;
    },
    fromPartial(object) {
        const message = createBaseState_NodeStatesAtTick();
        message.tickCounter = object.tickCounter ?? 0;
        message.tickStartTimestamp = object.tickStartTimestamp ?? undefined;
        message.nodeStates =
            object.nodeStates?.map((e) => exports.State_NodeStatesAtTick_NodeState.fromPartial(e)) || [];
        return message;
    },
};
function createBaseState_NodeStatesAtTick_NodeState() {
    return { result: 0, error: "", id: 0 };
}
exports.State_NodeStatesAtTick_NodeState = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.result !== 0) {
            writer.uint32(8).int32(message.result);
        }
        if (message.error !== "") {
            writer.uint32(18).string(message.error);
        }
        if (message.id !== 0) {
            writer.uint32(24).int64(message.id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseState_NodeStatesAtTick_NodeState();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.result = reader.int32();
                    break;
                case 2:
                    message.error = reader.string();
                    break;
                case 3:
                    message.id = longToNumber(reader.int64());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            result: isSet(object.result) ? (0, util_1.resultFromJSON)(object.result) : 0,
            error: isSet(object.error) ? String(object.error) : "",
            id: isSet(object.id) ? Number(object.id) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        message.result !== undefined && (obj.result = (0, util_1.resultToJSON)(message.result));
        message.error !== undefined && (obj.error = message.error);
        message.id !== undefined && (obj.id = Math.round(message.id));
        return obj;
    },
    fromPartial(object) {
        const message = createBaseState_NodeStatesAtTick_NodeState();
        message.result = object.result ?? 0;
        message.error = object.error ?? "";
        message.id = object.id ?? 0;
        return message;
    },
};
function createBaseQuestion() {
    return {
        id: 0,
        source: "",
        text: "",
        options: [],
        forAutonomousProcessing: false,
    };
}
exports.Question = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.id !== 0) {
            writer.uint32(8).int64(message.id);
        }
        if (message.source !== "") {
            writer.uint32(18).string(message.source);
        }
        if (message.text !== "") {
            writer.uint32(26).string(message.text);
        }
        for (const v of message.options) {
            nodes_1.Prompt_Option.encode(v, writer.uint32(34).fork()).ldelim();
        }
        if (message.forAutonomousProcessing === true) {
            writer.uint32(40).bool(message.forAutonomousProcessing);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseQuestion();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.id = longToNumber(reader.int64());
                    break;
                case 2:
                    message.source = reader.string();
                    break;
                case 3:
                    message.text = reader.string();
                    break;
                case 4:
                    message.options.push(nodes_1.Prompt_Option.decode(reader, reader.uint32()));
                    break;
                case 5:
                    message.forAutonomousProcessing = reader.bool();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            id: isSet(object.id) ? Number(object.id) : 0,
            source: isSet(object.source) ? String(object.source) : "",
            text: isSet(object.text) ? String(object.text) : "",
            options: Array.isArray(object?.options)
                ? object.options.map((e) => nodes_1.Prompt_Option.fromJSON(e))
                : [],
            forAutonomousProcessing: isSet(object.forAutonomousProcessing)
                ? Boolean(object.forAutonomousProcessing)
                : false,
        };
    },
    toJSON(message) {
        const obj = {};
        message.id !== undefined && (obj.id = Math.round(message.id));
        message.source !== undefined && (obj.source = message.source);
        message.text !== undefined && (obj.text = message.text);
        if (message.options) {
            obj.options = message.options.map((e) => e ? nodes_1.Prompt_Option.toJSON(e) : undefined);
        }
        else {
            obj.options = [];
        }
        message.forAutonomousProcessing !== undefined &&
            (obj.forAutonomousProcessing = message.forAutonomousProcessing);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseQuestion();
        message.id = object.id ?? 0;
        message.source = object.source ?? "";
        message.text = object.text ?? "";
        message.options =
            object.options?.map((e) => nodes_1.Prompt_Option.fromPartial(e)) || [];
        message.forAutonomousProcessing = object.forAutonomousProcessing ?? false;
        return message;
    },
};
function createBaseAnswerQuestionRequest() {
    return { header: undefined, questionId: 0, code: 0 };
}
exports.AnswerQuestionRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.questionId !== 0) {
            writer.uint32(16).int64(message.questionId);
        }
        if (message.code !== 0) {
            writer.uint32(24).int64(message.code);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAnswerQuestionRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.questionId = longToNumber(reader.int64());
                    break;
                case 3:
                    message.code = longToNumber(reader.int64());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
            questionId: isSet(object.questionId) ? Number(object.questionId) : 0,
            code: isSet(object.code) ? Number(object.code) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        message.questionId !== undefined &&
            (obj.questionId = Math.round(message.questionId));
        message.code !== undefined && (obj.code = Math.round(message.code));
        return obj;
    },
    fromPartial(object) {
        const message = createBaseAnswerQuestionRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        message.questionId = object.questionId ?? 0;
        message.code = object.code ?? 0;
        return message;
    },
};
function createBaseAnswerQuestionResponse() {
    return { header: undefined, status: 0 };
}
exports.AnswerQuestionResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.status !== 0) {
            writer.uint32(16).int32(message.status);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAnswerQuestionResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.status = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            status: isSet(object.status)
                ? answerQuestionResponse_StatusFromJSON(object.status)
                : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.status !== undefined &&
            (obj.status = answerQuestionResponse_StatusToJSON(message.status));
        return obj;
    },
    fromPartial(object) {
        const message = createBaseAnswerQuestionResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.status = object.status ?? 0;
        return message;
    },
};
function createBaseMissionInfo() {
    return { id: 0, root: undefined };
}
exports.MissionInfo = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.id !== 0) {
            writer.uint32(8).int64(message.id);
        }
        if (message.root !== undefined) {
            exports.NodeInfo.encode(message.root, writer.uint32(18).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseMissionInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.id = longToNumber(reader.int64());
                    break;
                case 2:
                    message.root = exports.NodeInfo.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            id: isSet(object.id) ? Number(object.id) : 0,
            root: isSet(object.root) ? exports.NodeInfo.fromJSON(object.root) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.id !== undefined && (obj.id = Math.round(message.id));
        message.root !== undefined &&
            (obj.root = message.root ? exports.NodeInfo.toJSON(message.root) : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseMissionInfo();
        message.id = object.id ?? 0;
        message.root =
            object.root !== undefined && object.root !== null
                ? exports.NodeInfo.fromPartial(object.root)
                : undefined;
        return message;
    },
};
function createBaseNodeInfo() {
    return { id: 0, name: "", userData: undefined, children: [] };
}
exports.NodeInfo = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.id !== 0) {
            writer.uint32(8).int64(message.id);
        }
        if (message.name !== "") {
            writer.uint32(18).string(message.name);
        }
        if (message.userData !== undefined) {
            util_1.UserData.encode(message.userData, writer.uint32(26).fork()).ldelim();
        }
        for (const v of message.children) {
            exports.NodeInfo.encode(v, writer.uint32(34).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseNodeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.id = longToNumber(reader.int64());
                    break;
                case 2:
                    message.name = reader.string();
                    break;
                case 3:
                    message.userData = util_1.UserData.decode(reader, reader.uint32());
                    break;
                case 4:
                    message.children.push(exports.NodeInfo.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            id: isSet(object.id) ? Number(object.id) : 0,
            name: isSet(object.name) ? String(object.name) : "",
            userData: isSet(object.userData)
                ? util_1.UserData.fromJSON(object.userData)
                : undefined,
            children: Array.isArray(object?.children)
                ? object.children.map((e) => exports.NodeInfo.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        message.id !== undefined && (obj.id = Math.round(message.id));
        message.name !== undefined && (obj.name = message.name);
        message.userData !== undefined &&
            (obj.userData = message.userData
                ? util_1.UserData.toJSON(message.userData)
                : undefined);
        if (message.children) {
            obj.children = message.children.map((e) => e ? exports.NodeInfo.toJSON(e) : undefined);
        }
        else {
            obj.children = [];
        }
        return obj;
    },
    fromPartial(object) {
        const message = createBaseNodeInfo();
        message.id = object.id ?? 0;
        message.name = object.name ?? "";
        message.userData =
            object.userData !== undefined && object.userData !== null
                ? util_1.UserData.fromPartial(object.userData)
                : undefined;
        message.children =
            object.children?.map((e) => exports.NodeInfo.fromPartial(e)) || [];
        return message;
    },
};
function createBaseFailedNode() {
    return { name: "", error: "", implTypename: "" };
}
exports.FailedNode = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.name !== "") {
            writer.uint32(10).string(message.name);
        }
        if (message.error !== "") {
            writer.uint32(18).string(message.error);
        }
        if (message.implTypename !== "") {
            writer.uint32(26).string(message.implTypename);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseFailedNode();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.name = reader.string();
                    break;
                case 2:
                    message.error = reader.string();
                    break;
                case 3:
                    message.implTypename = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            name: isSet(object.name) ? String(object.name) : "",
            error: isSet(object.error) ? String(object.error) : "",
            implTypename: isSet(object.implTypename)
                ? String(object.implTypename)
                : "",
        };
    },
    toJSON(message) {
        const obj = {};
        message.name !== undefined && (obj.name = message.name);
        message.error !== undefined && (obj.error = message.error);
        message.implTypename !== undefined &&
            (obj.implTypename = message.implTypename);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseFailedNode();
        message.name = object.name ?? "";
        message.error = object.error ?? "";
        message.implTypename = object.implTypename ?? "";
        return message;
    },
};
function createBasePlayMissionRequest() {
    return {
        header: undefined,
        pauseTime: undefined,
        leases: [],
        settings: undefined,
    };
}
exports.PlayMissionRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.pauseTime !== undefined) {
            timestamp_1.Timestamp.encode(toTimestamp(message.pauseTime), writer.uint32(26).fork()).ldelim();
        }
        for (const v of message.leases) {
            lease_1.Lease.encode(v, writer.uint32(34).fork()).ldelim();
        }
        if (message.settings !== undefined) {
            exports.PlaySettings.encode(message.settings, writer.uint32(42).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBasePlayMissionRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                case 3:
                    message.pauseTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
                    break;
                case 4:
                    message.leases.push(lease_1.Lease.decode(reader, reader.uint32()));
                    break;
                case 5:
                    message.settings = exports.PlaySettings.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
            pauseTime: isSet(object.pauseTime)
                ? fromJsonTimestamp(object.pauseTime)
                : undefined,
            leases: Array.isArray(object?.leases)
                ? object.leases.map((e) => lease_1.Lease.fromJSON(e))
                : [],
            settings: isSet(object.settings)
                ? exports.PlaySettings.fromJSON(object.settings)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        message.pauseTime !== undefined &&
            (obj.pauseTime = message.pauseTime.toISOString());
        if (message.leases) {
            obj.leases = message.leases.map((e) => (e ? lease_1.Lease.toJSON(e) : undefined));
        }
        else {
            obj.leases = [];
        }
        message.settings !== undefined &&
            (obj.settings = message.settings
                ? exports.PlaySettings.toJSON(message.settings)
                : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBasePlayMissionRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        message.pauseTime = object.pauseTime ?? undefined;
        message.leases = object.leases?.map((e) => lease_1.Lease.fromPartial(e)) || [];
        message.settings =
            object.settings !== undefined && object.settings !== null
                ? exports.PlaySettings.fromPartial(object.settings)
                : undefined;
        return message;
    },
};
function createBasePlaySettings() {
    return {
        velocityLimit: undefined,
        disableDirectedExploration: false,
        disableAlternateRouteFinding: false,
    };
}
exports.PlaySettings = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.velocityLimit !== undefined) {
            geometry_1.SE2VelocityLimit.encode(message.velocityLimit, writer.uint32(10).fork()).ldelim();
        }
        if (message.disableDirectedExploration === true) {
            writer.uint32(16).bool(message.disableDirectedExploration);
        }
        if (message.disableAlternateRouteFinding === true) {
            writer.uint32(24).bool(message.disableAlternateRouteFinding);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBasePlaySettings();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.velocityLimit = geometry_1.SE2VelocityLimit.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.disableDirectedExploration = reader.bool();
                    break;
                case 3:
                    message.disableAlternateRouteFinding = reader.bool();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            velocityLimit: isSet(object.velocityLimit)
                ? geometry_1.SE2VelocityLimit.fromJSON(object.velocityLimit)
                : undefined,
            disableDirectedExploration: isSet(object.disableDirectedExploration)
                ? Boolean(object.disableDirectedExploration)
                : false,
            disableAlternateRouteFinding: isSet(object.disableAlternateRouteFinding)
                ? Boolean(object.disableAlternateRouteFinding)
                : false,
        };
    },
    toJSON(message) {
        const obj = {};
        message.velocityLimit !== undefined &&
            (obj.velocityLimit = message.velocityLimit
                ? geometry_1.SE2VelocityLimit.toJSON(message.velocityLimit)
                : undefined);
        message.disableDirectedExploration !== undefined &&
            (obj.disableDirectedExploration = message.disableDirectedExploration);
        message.disableAlternateRouteFinding !== undefined &&
            (obj.disableAlternateRouteFinding = message.disableAlternateRouteFinding);
        return obj;
    },
    fromPartial(object) {
        const message = createBasePlaySettings();
        message.velocityLimit =
            object.velocityLimit !== undefined && object.velocityLimit !== null
                ? geometry_1.SE2VelocityLimit.fromPartial(object.velocityLimit)
                : undefined;
        message.disableDirectedExploration =
            object.disableDirectedExploration ?? false;
        message.disableAlternateRouteFinding =
            object.disableAlternateRouteFinding ?? false;
        return message;
    },
};
function createBasePlayMissionResponse() {
    return { header: undefined, status: 0, leaseUseResults: [] };
}
exports.PlayMissionResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.status !== 0) {
            writer.uint32(16).int32(message.status);
        }
        for (const v of message.leaseUseResults) {
            lease_1.LeaseUseResult.encode(v, writer.uint32(26).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBasePlayMissionResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.status = reader.int32();
                    break;
                case 3:
                    message.leaseUseResults.push(lease_1.LeaseUseResult.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            status: isSet(object.status)
                ? playMissionResponse_StatusFromJSON(object.status)
                : 0,
            leaseUseResults: Array.isArray(object?.leaseUseResults)
                ? object.leaseUseResults.map((e) => lease_1.LeaseUseResult.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.status !== undefined &&
            (obj.status = playMissionResponse_StatusToJSON(message.status));
        if (message.leaseUseResults) {
            obj.leaseUseResults = message.leaseUseResults.map((e) => e ? lease_1.LeaseUseResult.toJSON(e) : undefined);
        }
        else {
            obj.leaseUseResults = [];
        }
        return obj;
    },
    fromPartial(object) {
        const message = createBasePlayMissionResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.status = object.status ?? 0;
        message.leaseUseResults =
            object.leaseUseResults?.map((e) => lease_1.LeaseUseResult.fromPartial(e)) || [];
        return message;
    },
};
function createBaseRestartMissionRequest() {
    return {
        header: undefined,
        pauseTime: undefined,
        leases: [],
        settings: undefined,
    };
}
exports.RestartMissionRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.pauseTime !== undefined) {
            timestamp_1.Timestamp.encode(toTimestamp(message.pauseTime), writer.uint32(18).fork()).ldelim();
        }
        for (const v of message.leases) {
            lease_1.Lease.encode(v, writer.uint32(26).fork()).ldelim();
        }
        if (message.settings !== undefined) {
            exports.PlaySettings.encode(message.settings, writer.uint32(34).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRestartMissionRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.pauseTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
                    break;
                case 3:
                    message.leases.push(lease_1.Lease.decode(reader, reader.uint32()));
                    break;
                case 4:
                    message.settings = exports.PlaySettings.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
            pauseTime: isSet(object.pauseTime)
                ? fromJsonTimestamp(object.pauseTime)
                : undefined,
            leases: Array.isArray(object?.leases)
                ? object.leases.map((e) => lease_1.Lease.fromJSON(e))
                : [],
            settings: isSet(object.settings)
                ? exports.PlaySettings.fromJSON(object.settings)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        message.pauseTime !== undefined &&
            (obj.pauseTime = message.pauseTime.toISOString());
        if (message.leases) {
            obj.leases = message.leases.map((e) => (e ? lease_1.Lease.toJSON(e) : undefined));
        }
        else {
            obj.leases = [];
        }
        message.settings !== undefined &&
            (obj.settings = message.settings
                ? exports.PlaySettings.toJSON(message.settings)
                : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseRestartMissionRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        message.pauseTime = object.pauseTime ?? undefined;
        message.leases = object.leases?.map((e) => lease_1.Lease.fromPartial(e)) || [];
        message.settings =
            object.settings !== undefined && object.settings !== null
                ? exports.PlaySettings.fromPartial(object.settings)
                : undefined;
        return message;
    },
};
function createBaseRestartMissionResponse() {
    return { header: undefined, status: 0, leaseUseResults: [], failedNodes: [] };
}
exports.RestartMissionResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.status !== 0) {
            writer.uint32(16).int32(message.status);
        }
        for (const v of message.leaseUseResults) {
            lease_1.LeaseUseResult.encode(v, writer.uint32(26).fork()).ldelim();
        }
        for (const v of message.failedNodes) {
            exports.FailedNode.encode(v, writer.uint32(34).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRestartMissionResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.status = reader.int32();
                    break;
                case 3:
                    message.leaseUseResults.push(lease_1.LeaseUseResult.decode(reader, reader.uint32()));
                    break;
                case 4:
                    message.failedNodes.push(exports.FailedNode.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            status: isSet(object.status)
                ? restartMissionResponse_StatusFromJSON(object.status)
                : 0,
            leaseUseResults: Array.isArray(object?.leaseUseResults)
                ? object.leaseUseResults.map((e) => lease_1.LeaseUseResult.fromJSON(e))
                : [],
            failedNodes: Array.isArray(object?.failedNodes)
                ? object.failedNodes.map((e) => exports.FailedNode.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.status !== undefined &&
            (obj.status = restartMissionResponse_StatusToJSON(message.status));
        if (message.leaseUseResults) {
            obj.leaseUseResults = message.leaseUseResults.map((e) => e ? lease_1.LeaseUseResult.toJSON(e) : undefined);
        }
        else {
            obj.leaseUseResults = [];
        }
        if (message.failedNodes) {
            obj.failedNodes = message.failedNodes.map((e) => e ? exports.FailedNode.toJSON(e) : undefined);
        }
        else {
            obj.failedNodes = [];
        }
        return obj;
    },
    fromPartial(object) {
        const message = createBaseRestartMissionResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.status = object.status ?? 0;
        message.leaseUseResults =
            object.leaseUseResults?.map((e) => lease_1.LeaseUseResult.fromPartial(e)) || [];
        message.failedNodes =
            object.failedNodes?.map((e) => exports.FailedNode.fromPartial(e)) || [];
        return message;
    },
};
function createBaseLoadMissionRequest() {
    return { header: undefined, root: undefined, leases: [] };
}
exports.LoadMissionRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.root !== undefined) {
            nodes_1.Node.encode(message.root, writer.uint32(18).fork()).ldelim();
        }
        for (const v of message.leases) {
            lease_1.Lease.encode(v, writer.uint32(26).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLoadMissionRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.root = nodes_1.Node.decode(reader, reader.uint32());
                    break;
                case 3:
                    message.leases.push(lease_1.Lease.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
            root: isSet(object.root) ? nodes_1.Node.fromJSON(object.root) : undefined,
            leases: Array.isArray(object?.leases)
                ? object.leases.map((e) => lease_1.Lease.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        message.root !== undefined &&
            (obj.root = message.root ? nodes_1.Node.toJSON(message.root) : undefined);
        if (message.leases) {
            obj.leases = message.leases.map((e) => (e ? lease_1.Lease.toJSON(e) : undefined));
        }
        else {
            obj.leases = [];
        }
        return obj;
    },
    fromPartial(object) {
        const message = createBaseLoadMissionRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        message.root =
            object.root !== undefined && object.root !== null
                ? nodes_1.Node.fromPartial(object.root)
                : undefined;
        message.leases = object.leases?.map((e) => lease_1.Lease.fromPartial(e)) || [];
        return message;
    },
};
function createBaseLoadMissionResponse() {
    return {
        header: undefined,
        status: 0,
        leaseUseResults: [],
        missionInfo: undefined,
        failedNodes: [],
    };
}
exports.LoadMissionResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.status !== 0) {
            writer.uint32(16).int32(message.status);
        }
        for (const v of message.leaseUseResults) {
            lease_1.LeaseUseResult.encode(v, writer.uint32(26).fork()).ldelim();
        }
        if (message.missionInfo !== undefined) {
            exports.MissionInfo.encode(message.missionInfo, writer.uint32(34).fork()).ldelim();
        }
        for (const v of message.failedNodes) {
            exports.FailedNode.encode(v, writer.uint32(42).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLoadMissionResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.status = reader.int32();
                    break;
                case 3:
                    message.leaseUseResults.push(lease_1.LeaseUseResult.decode(reader, reader.uint32()));
                    break;
                case 4:
                    message.missionInfo = exports.MissionInfo.decode(reader, reader.uint32());
                    break;
                case 5:
                    message.failedNodes.push(exports.FailedNode.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            status: isSet(object.status)
                ? loadMissionResponse_StatusFromJSON(object.status)
                : 0,
            leaseUseResults: Array.isArray(object?.leaseUseResults)
                ? object.leaseUseResults.map((e) => lease_1.LeaseUseResult.fromJSON(e))
                : [],
            missionInfo: isSet(object.missionInfo)
                ? exports.MissionInfo.fromJSON(object.missionInfo)
                : undefined,
            failedNodes: Array.isArray(object?.failedNodes)
                ? object.failedNodes.map((e) => exports.FailedNode.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.status !== undefined &&
            (obj.status = loadMissionResponse_StatusToJSON(message.status));
        if (message.leaseUseResults) {
            obj.leaseUseResults = message.leaseUseResults.map((e) => e ? lease_1.LeaseUseResult.toJSON(e) : undefined);
        }
        else {
            obj.leaseUseResults = [];
        }
        message.missionInfo !== undefined &&
            (obj.missionInfo = message.missionInfo
                ? exports.MissionInfo.toJSON(message.missionInfo)
                : undefined);
        if (message.failedNodes) {
            obj.failedNodes = message.failedNodes.map((e) => e ? exports.FailedNode.toJSON(e) : undefined);
        }
        else {
            obj.failedNodes = [];
        }
        return obj;
    },
    fromPartial(object) {
        const message = createBaseLoadMissionResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.status = object.status ?? 0;
        message.leaseUseResults =
            object.leaseUseResults?.map((e) => lease_1.LeaseUseResult.fromPartial(e)) || [];
        message.missionInfo =
            object.missionInfo !== undefined && object.missionInfo !== null
                ? exports.MissionInfo.fromPartial(object.missionInfo)
                : undefined;
        message.failedNodes =
            object.failedNodes?.map((e) => exports.FailedNode.fromPartial(e)) || [];
        return message;
    },
};
function createBaseGetInfoRequest() {
    return { header: undefined };
}
exports.GetInfoRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGetInfoRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseGetInfoRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        return message;
    },
};
function createBaseGetInfoResponse() {
    return { header: undefined, missionInfo: undefined };
}
exports.GetInfoResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.missionInfo !== undefined) {
            exports.MissionInfo.encode(message.missionInfo, writer.uint32(18).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGetInfoResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.missionInfo = exports.MissionInfo.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            missionInfo: isSet(object.missionInfo)
                ? exports.MissionInfo.fromJSON(object.missionInfo)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.missionInfo !== undefined &&
            (obj.missionInfo = message.missionInfo
                ? exports.MissionInfo.toJSON(message.missionInfo)
                : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseGetInfoResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.missionInfo =
            object.missionInfo !== undefined && object.missionInfo !== null
                ? exports.MissionInfo.fromPartial(object.missionInfo)
                : undefined;
        return message;
    },
};
function createBasePauseMissionRequest() {
    return { header: undefined, lease: undefined };
}
exports.PauseMissionRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.lease !== undefined) {
            lease_1.Lease.encode(message.lease, writer.uint32(18).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBasePauseMissionRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.lease = lease_1.Lease.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
            lease: isSet(object.lease) ? lease_1.Lease.fromJSON(object.lease) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        message.lease !== undefined &&
            (obj.lease = message.lease ? lease_1.Lease.toJSON(message.lease) : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBasePauseMissionRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        message.lease =
            object.lease !== undefined && object.lease !== null
                ? lease_1.Lease.fromPartial(object.lease)
                : undefined;
        return message;
    },
};
function createBasePauseMissionResponse() {
    return { header: undefined, status: 0, leaseUseResult: undefined };
}
exports.PauseMissionResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.status !== 0) {
            writer.uint32(16).int32(message.status);
        }
        if (message.leaseUseResult !== undefined) {
            lease_1.LeaseUseResult.encode(message.leaseUseResult, writer.uint32(26).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBasePauseMissionResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.status = reader.int32();
                    break;
                case 3:
                    message.leaseUseResult = lease_1.LeaseUseResult.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            status: isSet(object.status)
                ? pauseMissionResponse_StatusFromJSON(object.status)
                : 0,
            leaseUseResult: isSet(object.leaseUseResult)
                ? lease_1.LeaseUseResult.fromJSON(object.leaseUseResult)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.status !== undefined &&
            (obj.status = pauseMissionResponse_StatusToJSON(message.status));
        message.leaseUseResult !== undefined &&
            (obj.leaseUseResult = message.leaseUseResult
                ? lease_1.LeaseUseResult.toJSON(message.leaseUseResult)
                : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBasePauseMissionResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.status = object.status ?? 0;
        message.leaseUseResult =
            object.leaseUseResult !== undefined && object.leaseUseResult !== null
                ? lease_1.LeaseUseResult.fromPartial(object.leaseUseResult)
                : undefined;
        return message;
    },
};
function createBaseStopMissionRequest() {
    return { header: undefined, lease: undefined };
}
exports.StopMissionRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.lease !== undefined) {
            lease_1.Lease.encode(message.lease, writer.uint32(18).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseStopMissionRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.lease = lease_1.Lease.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
            lease: isSet(object.lease) ? lease_1.Lease.fromJSON(object.lease) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        message.lease !== undefined &&
            (obj.lease = message.lease ? lease_1.Lease.toJSON(message.lease) : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseStopMissionRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        message.lease =
            object.lease !== undefined && object.lease !== null
                ? lease_1.Lease.fromPartial(object.lease)
                : undefined;
        return message;
    },
};
function createBaseStopMissionResponse() {
    return { header: undefined, status: 0, leaseUseResult: undefined };
}
exports.StopMissionResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.status !== 0) {
            writer.uint32(16).int32(message.status);
        }
        if (message.leaseUseResult !== undefined) {
            lease_1.LeaseUseResult.encode(message.leaseUseResult, writer.uint32(26).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseStopMissionResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.status = reader.int32();
                    break;
                case 3:
                    message.leaseUseResult = lease_1.LeaseUseResult.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            status: isSet(object.status)
                ? stopMissionResponse_StatusFromJSON(object.status)
                : 0,
            leaseUseResult: isSet(object.leaseUseResult)
                ? lease_1.LeaseUseResult.fromJSON(object.leaseUseResult)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.status !== undefined &&
            (obj.status = stopMissionResponse_StatusToJSON(message.status));
        message.leaseUseResult !== undefined &&
            (obj.leaseUseResult = message.leaseUseResult
                ? lease_1.LeaseUseResult.toJSON(message.leaseUseResult)
                : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseStopMissionResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.status = object.status ?? 0;
        message.leaseUseResult =
            object.leaseUseResult !== undefined && object.leaseUseResult !== null
                ? lease_1.LeaseUseResult.fromPartial(object.leaseUseResult)
                : undefined;
        return message;
    },
};
function createBaseGetMissionRequest() {
    return { header: undefined };
}
exports.GetMissionRequest = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGetMissionRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.RequestHeader.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.RequestHeader.fromJSON(object.header)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.RequestHeader.toJSON(message.header)
                : undefined);
        return obj;
    },
    fromPartial(object) {
        const message = createBaseGetMissionRequest();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.RequestHeader.fromPartial(object.header)
                : undefined;
        return message;
    },
};
function createBaseGetMissionResponse() {
    return { header: undefined, root: undefined, id: 0 };
}
exports.GetMissionResponse = {
    encode(message, writer = minimal_1.default.Writer.create()) {
        if (message.header !== undefined) {
            header_1.ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
        }
        if (message.root !== undefined) {
            nodes_1.Node.encode(message.root, writer.uint32(18).fork()).ldelim();
        }
        if (message.id !== 0) {
            writer.uint32(24).int64(message.id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGetMissionResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    message.header = header_1.ResponseHeader.decode(reader, reader.uint32());
                    break;
                case 2:
                    message.root = nodes_1.Node.decode(reader, reader.uint32());
                    break;
                case 3:
                    message.id = longToNumber(reader.int64());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
            }
        }
        return message;
    },
    fromJSON(object) {
        return {
            header: isSet(object.header)
                ? header_1.ResponseHeader.fromJSON(object.header)
                : undefined,
            root: isSet(object.root) ? nodes_1.Node.fromJSON(object.root) : undefined,
            id: isSet(object.id) ? Number(object.id) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        message.header !== undefined &&
            (obj.header = message.header
                ? header_1.ResponseHeader.toJSON(message.header)
                : undefined);
        message.root !== undefined &&
            (obj.root = message.root ? nodes_1.Node.toJSON(message.root) : undefined);
        message.id !== undefined && (obj.id = Math.round(message.id));
        return obj;
    },
    fromPartial(object) {
        const message = createBaseGetMissionResponse();
        message.header =
            object.header !== undefined && object.header !== null
                ? header_1.ResponseHeader.fromPartial(object.header)
                : undefined;
        message.root =
            object.root !== undefined && object.root !== null
                ? nodes_1.Node.fromPartial(object.root)
                : undefined;
        message.id = object.id ?? 0;
        return message;
    },
};
var globalThis = (() => {
    if (typeof globalThis !== "undefined")
        return globalThis;
    if (typeof self !== "undefined")
        return self;
    if (typeof window !== "undefined")
        return window;
    if (typeof global !== "undefined")
        return global;
    throw "Unable to locate global object";
})();
function toTimestamp(date) {
    const seconds = date.getTime() / 1000;
    const nanos = (date.getTime() % 1000) * 1000000;
    return { seconds, nanos };
}
function fromTimestamp(t) {
    let millis = t.seconds * 1000;
    millis += t.nanos / 1000000;
    return new Date(millis);
}
function fromJsonTimestamp(o) {
    if (o instanceof Date) {
        return o;
    }
    else if (typeof o === "string") {
        return new Date(o);
    }
    else {
        return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));
    }
}
function longToNumber(long) {
    if (long.gt(Number.MAX_SAFE_INTEGER)) {
        throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
    }
    return long.toNumber();
}
if (minimal_1.default.util.Long !== long_1.default) {
    minimal_1.default.util.Long = long_1.default;
    minimal_1.default.configure();
}
function isSet(value) {
    return value !== null && value !== undefined;
}
//# sourceMappingURL=mission.js.map