import * as $protobuf from "protobufjs";
import Long = require("long");
/** Namespace command_request. */
export namespace command_request {

    /** SimpleRoutes enum. */
    enum SimpleRoutes {
        AllNodes = 0,
        AllPrimaries = 1,
        Random = 2
    }

    /** SlotTypes enum. */
    enum SlotTypes {
        Primary = 0,
        Replica = 1
    }

    /** Properties of a SlotIdRoute. */
    interface ISlotIdRoute {

        /** SlotIdRoute slotType */
        slotType?: (command_request.SlotTypes|null);

        /** SlotIdRoute slotId */
        slotId?: (number|null);
    }

    /** Represents a SlotIdRoute. */
    class SlotIdRoute implements ISlotIdRoute {

        /**
         * Constructs a new SlotIdRoute.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.ISlotIdRoute);

        /** SlotIdRoute slotType. */
        public slotType: command_request.SlotTypes;

        /** SlotIdRoute slotId. */
        public slotId: number;

        /**
         * Creates a new SlotIdRoute instance using the specified properties.
         * @param [properties] Properties to set
         * @returns SlotIdRoute instance
         */
        public static create(properties?: command_request.ISlotIdRoute): command_request.SlotIdRoute;

        /**
         * Encodes the specified SlotIdRoute message. Does not implicitly {@link command_request.SlotIdRoute.verify|verify} messages.
         * @param message SlotIdRoute message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.ISlotIdRoute, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified SlotIdRoute message, length delimited. Does not implicitly {@link command_request.SlotIdRoute.verify|verify} messages.
         * @param message SlotIdRoute message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.ISlotIdRoute, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a SlotIdRoute message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns SlotIdRoute
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.SlotIdRoute;

        /**
         * Decodes a SlotIdRoute message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns SlotIdRoute
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.SlotIdRoute;

        /**
         * Gets the default type url for SlotIdRoute
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a SlotKeyRoute. */
    interface ISlotKeyRoute {

        /** SlotKeyRoute slotType */
        slotType?: (command_request.SlotTypes|null);

        /** SlotKeyRoute slotKey */
        slotKey?: (string|null);
    }

    /** Represents a SlotKeyRoute. */
    class SlotKeyRoute implements ISlotKeyRoute {

        /**
         * Constructs a new SlotKeyRoute.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.ISlotKeyRoute);

        /** SlotKeyRoute slotType. */
        public slotType: command_request.SlotTypes;

        /** SlotKeyRoute slotKey. */
        public slotKey: string;

        /**
         * Creates a new SlotKeyRoute instance using the specified properties.
         * @param [properties] Properties to set
         * @returns SlotKeyRoute instance
         */
        public static create(properties?: command_request.ISlotKeyRoute): command_request.SlotKeyRoute;

        /**
         * Encodes the specified SlotKeyRoute message. Does not implicitly {@link command_request.SlotKeyRoute.verify|verify} messages.
         * @param message SlotKeyRoute message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.ISlotKeyRoute, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified SlotKeyRoute message, length delimited. Does not implicitly {@link command_request.SlotKeyRoute.verify|verify} messages.
         * @param message SlotKeyRoute message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.ISlotKeyRoute, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a SlotKeyRoute message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns SlotKeyRoute
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.SlotKeyRoute;

        /**
         * Decodes a SlotKeyRoute message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns SlotKeyRoute
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.SlotKeyRoute;

        /**
         * Gets the default type url for SlotKeyRoute
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ByAddressRoute. */
    interface IByAddressRoute {

        /** ByAddressRoute host */
        host?: (string|null);

        /** ByAddressRoute port */
        port?: (number|null);
    }

    /** Represents a ByAddressRoute. */
    class ByAddressRoute implements IByAddressRoute {

        /**
         * Constructs a new ByAddressRoute.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IByAddressRoute);

        /** ByAddressRoute host. */
        public host: string;

        /** ByAddressRoute port. */
        public port: number;

        /**
         * Creates a new ByAddressRoute instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ByAddressRoute instance
         */
        public static create(properties?: command_request.IByAddressRoute): command_request.ByAddressRoute;

        /**
         * Encodes the specified ByAddressRoute message. Does not implicitly {@link command_request.ByAddressRoute.verify|verify} messages.
         * @param message ByAddressRoute message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IByAddressRoute, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ByAddressRoute message, length delimited. Does not implicitly {@link command_request.ByAddressRoute.verify|verify} messages.
         * @param message ByAddressRoute message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IByAddressRoute, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ByAddressRoute message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ByAddressRoute
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.ByAddressRoute;

        /**
         * Decodes a ByAddressRoute message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ByAddressRoute
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.ByAddressRoute;

        /**
         * Gets the default type url for ByAddressRoute
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a Routes. */
    interface IRoutes {

        /** Routes simpleRoutes */
        simpleRoutes?: (command_request.SimpleRoutes|null);

        /** Routes slotKeyRoute */
        slotKeyRoute?: (command_request.ISlotKeyRoute|null);

        /** Routes slotIdRoute */
        slotIdRoute?: (command_request.ISlotIdRoute|null);

        /** Routes byAddressRoute */
        byAddressRoute?: (command_request.IByAddressRoute|null);
    }

    /** Represents a Routes. */
    class Routes implements IRoutes {

        /**
         * Constructs a new Routes.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IRoutes);

        /** Routes simpleRoutes. */
        public simpleRoutes?: (command_request.SimpleRoutes|null);

        /** Routes slotKeyRoute. */
        public slotKeyRoute?: (command_request.ISlotKeyRoute|null);

        /** Routes slotIdRoute. */
        public slotIdRoute?: (command_request.ISlotIdRoute|null);

        /** Routes byAddressRoute. */
        public byAddressRoute?: (command_request.IByAddressRoute|null);

        /** Routes value. */
        public value?: ("simpleRoutes"|"slotKeyRoute"|"slotIdRoute"|"byAddressRoute");

        /**
         * Creates a new Routes instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Routes instance
         */
        public static create(properties?: command_request.IRoutes): command_request.Routes;

        /**
         * Encodes the specified Routes message. Does not implicitly {@link command_request.Routes.verify|verify} messages.
         * @param message Routes message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IRoutes, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Routes message, length delimited. Does not implicitly {@link command_request.Routes.verify|verify} messages.
         * @param message Routes message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IRoutes, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a Routes message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Routes
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.Routes;

        /**
         * Decodes a Routes message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Routes
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.Routes;

        /**
         * Gets the default type url for Routes
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** RequestType enum. */
    enum RequestType {
        InvalidRequest = 0,
        CustomCommand = 1,
        BitCount = 101,
        BitField = 102,
        BitFieldReadOnly = 103,
        BitOp = 104,
        BitPos = 105,
        GetBit = 106,
        SetBit = 107,
        Asking = 201,
        ClusterAddSlots = 202,
        ClusterAddSlotsRange = 203,
        ClusterBumpEpoch = 204,
        ClusterCountFailureReports = 205,
        ClusterCountKeysInSlot = 206,
        ClusterDelSlots = 207,
        ClusterDelSlotsRange = 208,
        ClusterFailover = 209,
        ClusterFlushSlots = 210,
        ClusterForget = 211,
        ClusterGetKeysInSlot = 212,
        ClusterInfo = 213,
        ClusterKeySlot = 214,
        ClusterLinks = 215,
        ClusterMeet = 216,
        ClusterMyId = 217,
        ClusterMyShardId = 218,
        ClusterNodes = 219,
        ClusterReplicas = 220,
        ClusterReplicate = 221,
        ClusterReset = 222,
        ClusterSaveConfig = 223,
        ClusterSetConfigEpoch = 224,
        ClusterSetslot = 225,
        ClusterShards = 226,
        ClusterSlaves = 227,
        ClusterSlots = 228,
        ReadOnly = 229,
        ReadWrite = 230,
        Auth = 301,
        ClientCaching = 302,
        ClientGetName = 303,
        ClientGetRedir = 304,
        ClientId = 305,
        ClientInfo = 306,
        ClientKillSimple = 307,
        ClientKill = 308,
        ClientList = 309,
        ClientNoEvict = 310,
        ClientNoTouch = 311,
        ClientPause = 312,
        ClientReply = 313,
        ClientSetInfo = 314,
        ClientSetName = 315,
        ClientTracking = 316,
        ClientTrackingInfo = 317,
        ClientUnblock = 318,
        ClientUnpause = 319,
        Echo = 320,
        Hello = 321,
        Ping = 322,
        Quit = 323,
        Reset = 324,
        Select = 325,
        Copy = 401,
        Del = 402,
        Dump = 403,
        Exists = 404,
        Expire = 405,
        ExpireAt = 406,
        ExpireTime = 407,
        Keys = 408,
        Migrate = 409,
        Move = 410,
        ObjectEncoding = 411,
        ObjectFreq = 412,
        ObjectIdleTime = 413,
        ObjectRefCount = 414,
        Persist = 415,
        PExpire = 416,
        PExpireAt = 417,
        PExpireTime = 418,
        PTTL = 419,
        RandomKey = 420,
        Rename = 421,
        RenameNX = 422,
        Restore = 423,
        Scan = 424,
        Sort = 425,
        SortReadOnly = 426,
        Touch = 427,
        TTL = 428,
        Type = 429,
        Unlink = 430,
        Wait = 431,
        WaitAof = 432,
        GeoAdd = 501,
        GeoDist = 502,
        GeoHash = 503,
        GeoPos = 504,
        GeoRadius = 505,
        GeoRadiusReadOnly = 506,
        GeoRadiusByMember = 507,
        GeoRadiusByMemberReadOnly = 508,
        GeoSearch = 509,
        GeoSearchStore = 510,
        HDel = 601,
        HExists = 602,
        HGet = 603,
        HGetAll = 604,
        HIncrBy = 605,
        HIncrByFloat = 606,
        HKeys = 607,
        HLen = 608,
        HMGet = 609,
        HMSet = 610,
        HRandField = 611,
        HScan = 612,
        HSet = 613,
        HSetNX = 614,
        HStrlen = 615,
        HVals = 616,
        HSetEx = 617,
        HGetEx = 618,
        HExpire = 619,
        HExpireAt = 620,
        HPExpire = 621,
        HPExpireAt = 622,
        HPersist = 623,
        HTtl = 624,
        HPTtl = 625,
        HExpireTime = 626,
        HPExpireTime = 627,
        PfAdd = 701,
        PfCount = 702,
        PfMerge = 703,
        BLMove = 801,
        BLMPop = 802,
        BLPop = 803,
        BRPop = 804,
        BRPopLPush = 805,
        LIndex = 806,
        LInsert = 807,
        LLen = 808,
        LMove = 809,
        LMPop = 810,
        LPop = 811,
        LPos = 812,
        LPush = 813,
        LPushX = 814,
        LRange = 815,
        LRem = 816,
        LSet = 817,
        LTrim = 818,
        RPop = 819,
        RPopLPush = 820,
        RPush = 821,
        RPushX = 822,
        PSubscribe = 901,
        Publish = 902,
        PubSubChannels = 903,
        PubSubNumPat = 904,
        PubSubNumSub = 905,
        PubSubShardChannels = 906,
        PubSubShardNumSub = 907,
        PUnsubscribe = 908,
        SPublish = 909,
        SSubscribe = 910,
        Subscribe = 911,
        SUnsubscribe = 912,
        Unsubscribe = 913,
        SubscribeBlocking = 914,
        UnsubscribeBlocking = 915,
        PSubscribeBlocking = 916,
        PUnsubscribeBlocking = 917,
        SSubscribeBlocking = 918,
        SUnsubscribeBlocking = 919,
        GetSubscriptions = 920,
        Eval = 1001,
        EvalReadOnly = 1002,
        EvalSha = 1003,
        EvalShaReadOnly = 1004,
        FCall = 1005,
        FCallReadOnly = 1006,
        FunctionDelete = 1007,
        FunctionDump = 1008,
        FunctionFlush = 1009,
        FunctionKill = 1010,
        FunctionList = 1011,
        FunctionLoad = 1012,
        FunctionRestore = 1013,
        FunctionStats = 1014,
        ScriptDebug = 1015,
        ScriptExists = 1016,
        ScriptFlush = 1017,
        ScriptKill = 1018,
        ScriptLoad = 1019,
        ScriptShow = 1020,
        AclCat = 1101,
        AclDelUser = 1102,
        AclDryRun = 1103,
        AclGenPass = 1104,
        AclGetUser = 1105,
        AclList = 1106,
        AclLoad = 1107,
        AclLog = 1108,
        AclSave = 1109,
        AclSetUser = 1110,
        AclUsers = 1111,
        AclWhoami = 1112,
        BgRewriteAof = 1113,
        BgSave = 1114,
        Command_ = 1115,
        CommandCount = 1116,
        CommandDocs = 1117,
        CommandGetKeys = 1118,
        CommandGetKeysAndFlags = 1119,
        CommandInfo = 1120,
        CommandList = 1121,
        ConfigGet = 1122,
        ConfigResetStat = 1123,
        ConfigRewrite = 1124,
        ConfigSet = 1125,
        DBSize = 1126,
        FailOver = 1127,
        FlushAll = 1128,
        FlushDB = 1129,
        Info = 1130,
        LastSave = 1131,
        LatencyDoctor = 1132,
        LatencyGraph = 1133,
        LatencyHistogram = 1134,
        LatencyHistory = 1135,
        LatencyLatest = 1136,
        LatencyReset = 1137,
        Lolwut = 1138,
        MemoryDoctor = 1139,
        MemoryMallocStats = 1140,
        MemoryPurge = 1141,
        MemoryStats = 1142,
        MemoryUsage = 1143,
        ModuleList = 1144,
        ModuleLoad = 1145,
        ModuleLoadEx = 1146,
        ModuleUnload = 1147,
        Monitor = 1148,
        PSync = 1149,
        ReplConf = 1150,
        ReplicaOf = 1151,
        RestoreAsking = 1152,
        Role = 1153,
        Save = 1154,
        ShutDown = 1155,
        SlaveOf = 1156,
        SlowLogGet = 1157,
        SlowLogLen = 1158,
        SlowLogReset = 1159,
        SwapDb = 1160,
        Sync = 1161,
        Time = 1162,
        SAdd = 1201,
        SCard = 1202,
        SDiff = 1203,
        SDiffStore = 1204,
        SInter = 1205,
        SInterCard = 1206,
        SInterStore = 1207,
        SIsMember = 1208,
        SMembers = 1209,
        SMIsMember = 1210,
        SMove = 1211,
        SPop = 1212,
        SRandMember = 1213,
        SRem = 1214,
        SScan = 1215,
        SUnion = 1216,
        SUnionStore = 1217,
        BZMPop = 1301,
        BZPopMax = 1302,
        BZPopMin = 1303,
        ZAdd = 1304,
        ZCard = 1305,
        ZCount = 1306,
        ZDiff = 1307,
        ZDiffStore = 1308,
        ZIncrBy = 1309,
        ZInter = 1310,
        ZInterCard = 1311,
        ZInterStore = 1312,
        ZLexCount = 1313,
        ZMPop = 1314,
        ZMScore = 1315,
        ZPopMax = 1316,
        ZPopMin = 1317,
        ZRandMember = 1318,
        ZRange = 1319,
        ZRangeByLex = 1320,
        ZRangeByScore = 1321,
        ZRangeStore = 1322,
        ZRank = 1323,
        ZRem = 1324,
        ZRemRangeByLex = 1325,
        ZRemRangeByRank = 1326,
        ZRemRangeByScore = 1327,
        ZRevRange = 1328,
        ZRevRangeByLex = 1329,
        ZRevRangeByScore = 1330,
        ZRevRank = 1331,
        ZScan = 1332,
        ZScore = 1333,
        ZUnion = 1334,
        ZUnionStore = 1335,
        XAck = 1401,
        XAdd = 1402,
        XAutoClaim = 1403,
        XClaim = 1404,
        XDel = 1405,
        XGroupCreate = 1406,
        XGroupCreateConsumer = 1407,
        XGroupDelConsumer = 1408,
        XGroupDestroy = 1409,
        XGroupSetId = 1410,
        XInfoConsumers = 1411,
        XInfoGroups = 1412,
        XInfoStream = 1413,
        XLen = 1414,
        XPending = 1415,
        XRange = 1416,
        XRead = 1417,
        XReadGroup = 1418,
        XRevRange = 1419,
        XSetId = 1420,
        XTrim = 1421,
        Append = 1501,
        Decr = 1502,
        DecrBy = 1503,
        Get = 1504,
        GetDel = 1505,
        GetEx = 1506,
        GetRange = 1507,
        GetSet = 1508,
        Incr = 1509,
        IncrBy = 1510,
        IncrByFloat = 1511,
        LCS = 1512,
        MGet = 1513,
        MSet = 1514,
        MSetNX = 1515,
        PSetEx = 1516,
        Set = 1517,
        SetEx = 1518,
        SetNX = 1519,
        SetRange = 1520,
        Strlen = 1521,
        Substr = 1522,
        Discard = 1601,
        Exec = 1602,
        Multi = 1603,
        UnWatch = 1604,
        Watch = 1605,
        JsonArrAppend = 2001,
        JsonArrIndex = 2002,
        JsonArrInsert = 2003,
        JsonArrLen = 2004,
        JsonArrPop = 2005,
        JsonArrTrim = 2006,
        JsonClear = 2007,
        JsonDebug = 2008,
        JsonDel = 2009,
        JsonForget = 2010,
        JsonGet = 2011,
        JsonMGet = 2012,
        JsonNumIncrBy = 2013,
        JsonNumMultBy = 2014,
        JsonObjKeys = 2015,
        JsonObjLen = 2016,
        JsonResp = 2017,
        JsonSet = 2018,
        JsonStrAppend = 2019,
        JsonStrLen = 2020,
        JsonToggle = 2021,
        JsonType = 2022,
        FtList = 2101,
        FtAggregate = 2102,
        FtAliasAdd = 2103,
        FtAliasDel = 2104,
        FtAliasList = 2105,
        FtAliasUpdate = 2106,
        FtCreate = 2107,
        FtDropIndex = 2108,
        FtExplain = 2109,
        FtExplainCli = 2110,
        FtInfo = 2111,
        FtProfile = 2112,
        FtSearch = 2113
    }

    /** Properties of a Command. */
    interface ICommand {

        /** Command requestType */
        requestType?: (command_request.RequestType|null);

        /** Command argsArray */
        argsArray?: (command_request.Command.IArgsArray|null);

        /** Command argsVecPointer */
        argsVecPointer?: (number|Long|null);
    }

    /** Represents a Command. */
    class Command implements ICommand {

        /**
         * Constructs a new Command.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.ICommand);

        /** Command requestType. */
        public requestType: command_request.RequestType;

        /** Command argsArray. */
        public argsArray?: (command_request.Command.IArgsArray|null);

        /** Command argsVecPointer. */
        public argsVecPointer?: (number|Long|null);

        /** Command args. */
        public args?: ("argsArray"|"argsVecPointer");

        /**
         * Creates a new Command instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Command instance
         */
        public static create(properties?: command_request.ICommand): command_request.Command;

        /**
         * Encodes the specified Command message. Does not implicitly {@link command_request.Command.verify|verify} messages.
         * @param message Command message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.ICommand, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Command message, length delimited. Does not implicitly {@link command_request.Command.verify|verify} messages.
         * @param message Command message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.ICommand, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a Command message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Command
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.Command;

        /**
         * Decodes a Command message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Command
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.Command;

        /**
         * Gets the default type url for Command
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    namespace Command {

        /** Properties of an ArgsArray. */
        interface IArgsArray {

            /** ArgsArray args */
            args?: (Uint8Array[]|null);
        }

        /** Represents an ArgsArray. */
        class ArgsArray implements IArgsArray {

            /**
             * Constructs a new ArgsArray.
             * @param [properties] Properties to set
             */
            constructor(properties?: command_request.Command.IArgsArray);

            /** ArgsArray args. */
            public args: Uint8Array[];

            /**
             * Creates a new ArgsArray instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ArgsArray instance
             */
            public static create(properties?: command_request.Command.IArgsArray): command_request.Command.ArgsArray;

            /**
             * Encodes the specified ArgsArray message. Does not implicitly {@link command_request.Command.ArgsArray.verify|verify} messages.
             * @param message ArgsArray message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: command_request.Command.IArgsArray, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ArgsArray message, length delimited. Does not implicitly {@link command_request.Command.ArgsArray.verify|verify} messages.
             * @param message ArgsArray message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: command_request.Command.IArgsArray, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ArgsArray message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ArgsArray
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.Command.ArgsArray;

            /**
             * Decodes an ArgsArray message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ArgsArray
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.Command.ArgsArray;

            /**
             * Gets the default type url for ArgsArray
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Properties of a ScriptInvocationPointers. */
    interface IScriptInvocationPointers {

        /** ScriptInvocationPointers hash */
        hash?: (string|null);

        /** ScriptInvocationPointers keysPointer */
        keysPointer?: (number|Long|null);

        /** ScriptInvocationPointers argsPointer */
        argsPointer?: (number|Long|null);
    }

    /** Represents a ScriptInvocationPointers. */
    class ScriptInvocationPointers implements IScriptInvocationPointers {

        /**
         * Constructs a new ScriptInvocationPointers.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IScriptInvocationPointers);

        /** ScriptInvocationPointers hash. */
        public hash: string;

        /** ScriptInvocationPointers keysPointer. */
        public keysPointer?: (number|Long|null);

        /** ScriptInvocationPointers argsPointer. */
        public argsPointer?: (number|Long|null);

        /**
         * Creates a new ScriptInvocationPointers instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ScriptInvocationPointers instance
         */
        public static create(properties?: command_request.IScriptInvocationPointers): command_request.ScriptInvocationPointers;

        /**
         * Encodes the specified ScriptInvocationPointers message. Does not implicitly {@link command_request.ScriptInvocationPointers.verify|verify} messages.
         * @param message ScriptInvocationPointers message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IScriptInvocationPointers, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ScriptInvocationPointers message, length delimited. Does not implicitly {@link command_request.ScriptInvocationPointers.verify|verify} messages.
         * @param message ScriptInvocationPointers message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IScriptInvocationPointers, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ScriptInvocationPointers message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ScriptInvocationPointers
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.ScriptInvocationPointers;

        /**
         * Decodes a ScriptInvocationPointers message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ScriptInvocationPointers
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.ScriptInvocationPointers;

        /**
         * Gets the default type url for ScriptInvocationPointers
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ScriptInvocation. */
    interface IScriptInvocation {

        /** ScriptInvocation hash */
        hash?: (string|null);

        /** ScriptInvocation keys */
        keys?: (Uint8Array[]|null);

        /** ScriptInvocation args */
        args?: (Uint8Array[]|null);
    }

    /** Represents a ScriptInvocation. */
    class ScriptInvocation implements IScriptInvocation {

        /**
         * Constructs a new ScriptInvocation.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IScriptInvocation);

        /** ScriptInvocation hash. */
        public hash: string;

        /** ScriptInvocation keys. */
        public keys: Uint8Array[];

        /** ScriptInvocation args. */
        public args: Uint8Array[];

        /**
         * Creates a new ScriptInvocation instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ScriptInvocation instance
         */
        public static create(properties?: command_request.IScriptInvocation): command_request.ScriptInvocation;

        /**
         * Encodes the specified ScriptInvocation message. Does not implicitly {@link command_request.ScriptInvocation.verify|verify} messages.
         * @param message ScriptInvocation message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IScriptInvocation, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ScriptInvocation message, length delimited. Does not implicitly {@link command_request.ScriptInvocation.verify|verify} messages.
         * @param message ScriptInvocation message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IScriptInvocation, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ScriptInvocation message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ScriptInvocation
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.ScriptInvocation;

        /**
         * Decodes a ScriptInvocation message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ScriptInvocation
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.ScriptInvocation;

        /**
         * Gets the default type url for ScriptInvocation
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a Batch. */
    interface IBatch {

        /** Batch isAtomic */
        isAtomic?: (boolean|null);

        /** Batch commands */
        commands?: (command_request.ICommand[]|null);

        /** Batch raiseOnError */
        raiseOnError?: (boolean|null);

        /** Batch timeout */
        timeout?: (number|null);

        /** Batch retryServerError */
        retryServerError?: (boolean|null);

        /** Batch retryConnectionError */
        retryConnectionError?: (boolean|null);
    }

    /** Represents a Batch. */
    class Batch implements IBatch {

        /**
         * Constructs a new Batch.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IBatch);

        /** Batch isAtomic. */
        public isAtomic: boolean;

        /** Batch commands. */
        public commands: command_request.ICommand[];

        /** Batch raiseOnError. */
        public raiseOnError?: (boolean|null);

        /** Batch timeout. */
        public timeout?: (number|null);

        /** Batch retryServerError. */
        public retryServerError?: (boolean|null);

        /** Batch retryConnectionError. */
        public retryConnectionError?: (boolean|null);

        /**
         * Creates a new Batch instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Batch instance
         */
        public static create(properties?: command_request.IBatch): command_request.Batch;

        /**
         * Encodes the specified Batch message. Does not implicitly {@link command_request.Batch.verify|verify} messages.
         * @param message Batch message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IBatch, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Batch message, length delimited. Does not implicitly {@link command_request.Batch.verify|verify} messages.
         * @param message Batch message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IBatch, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a Batch message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Batch
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.Batch;

        /**
         * Decodes a Batch message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Batch
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.Batch;

        /**
         * Gets the default type url for Batch
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ClusterScan. */
    interface IClusterScan {

        /** ClusterScan cursor */
        cursor?: (string|null);

        /** ClusterScan matchPattern */
        matchPattern?: (Uint8Array|null);

        /** ClusterScan count */
        count?: (number|Long|null);

        /** ClusterScan objectType */
        objectType?: (string|null);

        /** ClusterScan allowNonCoveredSlots */
        allowNonCoveredSlots?: (boolean|null);
    }

    /** Represents a ClusterScan. */
    class ClusterScan implements IClusterScan {

        /**
         * Constructs a new ClusterScan.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IClusterScan);

        /** ClusterScan cursor. */
        public cursor: string;

        /** ClusterScan matchPattern. */
        public matchPattern?: (Uint8Array|null);

        /** ClusterScan count. */
        public count?: (number|Long|null);

        /** ClusterScan objectType. */
        public objectType?: (string|null);

        /** ClusterScan allowNonCoveredSlots. */
        public allowNonCoveredSlots: boolean;

        /**
         * Creates a new ClusterScan instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ClusterScan instance
         */
        public static create(properties?: command_request.IClusterScan): command_request.ClusterScan;

        /**
         * Encodes the specified ClusterScan message. Does not implicitly {@link command_request.ClusterScan.verify|verify} messages.
         * @param message ClusterScan message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IClusterScan, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ClusterScan message, length delimited. Does not implicitly {@link command_request.ClusterScan.verify|verify} messages.
         * @param message ClusterScan message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IClusterScan, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ClusterScan message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ClusterScan
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.ClusterScan;

        /**
         * Decodes a ClusterScan message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ClusterScan
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.ClusterScan;

        /**
         * Gets the default type url for ClusterScan
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an UpdateConnectionPassword. */
    interface IUpdateConnectionPassword {

        /** UpdateConnectionPassword password */
        password?: (string|null);

        /** UpdateConnectionPassword immediateAuth */
        immediateAuth?: (boolean|null);
    }

    /** Represents an UpdateConnectionPassword. */
    class UpdateConnectionPassword implements IUpdateConnectionPassword {

        /**
         * Constructs a new UpdateConnectionPassword.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IUpdateConnectionPassword);

        /** UpdateConnectionPassword password. */
        public password?: (string|null);

        /** UpdateConnectionPassword immediateAuth. */
        public immediateAuth: boolean;

        /**
         * Creates a new UpdateConnectionPassword instance using the specified properties.
         * @param [properties] Properties to set
         * @returns UpdateConnectionPassword instance
         */
        public static create(properties?: command_request.IUpdateConnectionPassword): command_request.UpdateConnectionPassword;

        /**
         * Encodes the specified UpdateConnectionPassword message. Does not implicitly {@link command_request.UpdateConnectionPassword.verify|verify} messages.
         * @param message UpdateConnectionPassword message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IUpdateConnectionPassword, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified UpdateConnectionPassword message, length delimited. Does not implicitly {@link command_request.UpdateConnectionPassword.verify|verify} messages.
         * @param message UpdateConnectionPassword message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IUpdateConnectionPassword, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an UpdateConnectionPassword message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns UpdateConnectionPassword
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.UpdateConnectionPassword;

        /**
         * Decodes an UpdateConnectionPassword message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns UpdateConnectionPassword
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.UpdateConnectionPassword;

        /**
         * Gets the default type url for UpdateConnectionPassword
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a RefreshIamToken. */
    interface IRefreshIamToken {
    }

    /** Represents a RefreshIamToken. */
    class RefreshIamToken implements IRefreshIamToken {

        /**
         * Constructs a new RefreshIamToken.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IRefreshIamToken);

        /**
         * Creates a new RefreshIamToken instance using the specified properties.
         * @param [properties] Properties to set
         * @returns RefreshIamToken instance
         */
        public static create(properties?: command_request.IRefreshIamToken): command_request.RefreshIamToken;

        /**
         * Encodes the specified RefreshIamToken message. Does not implicitly {@link command_request.RefreshIamToken.verify|verify} messages.
         * @param message RefreshIamToken message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IRefreshIamToken, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified RefreshIamToken message, length delimited. Does not implicitly {@link command_request.RefreshIamToken.verify|verify} messages.
         * @param message RefreshIamToken message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IRefreshIamToken, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a RefreshIamToken message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns RefreshIamToken
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.RefreshIamToken;

        /**
         * Decodes a RefreshIamToken message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns RefreshIamToken
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.RefreshIamToken;

        /**
         * Gets the default type url for RefreshIamToken
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a GetCacheMetrics. */
    interface IGetCacheMetrics {

        /** GetCacheMetrics metricsTypes */
        metricsTypes?: (command_request.CacheMetricsType|null);
    }

    /** Represents a GetCacheMetrics. */
    class GetCacheMetrics implements IGetCacheMetrics {

        /**
         * Constructs a new GetCacheMetrics.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.IGetCacheMetrics);

        /** GetCacheMetrics metricsTypes. */
        public metricsTypes: command_request.CacheMetricsType;

        /**
         * Creates a new GetCacheMetrics instance using the specified properties.
         * @param [properties] Properties to set
         * @returns GetCacheMetrics instance
         */
        public static create(properties?: command_request.IGetCacheMetrics): command_request.GetCacheMetrics;

        /**
         * Encodes the specified GetCacheMetrics message. Does not implicitly {@link command_request.GetCacheMetrics.verify|verify} messages.
         * @param message GetCacheMetrics message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.IGetCacheMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified GetCacheMetrics message, length delimited. Does not implicitly {@link command_request.GetCacheMetrics.verify|verify} messages.
         * @param message GetCacheMetrics message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.IGetCacheMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a GetCacheMetrics message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns GetCacheMetrics
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.GetCacheMetrics;

        /**
         * Decodes a GetCacheMetrics message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns GetCacheMetrics
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.GetCacheMetrics;

        /**
         * Gets the default type url for GetCacheMetrics
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** CacheMetricsType enum. */
    enum CacheMetricsType {
        HitRate = 0,
        MissRate = 1,
        EntryCount = 2,
        Evictions = 3,
        Expirations = 4,
        TotalLookups = 5
    }

    /** Properties of a CommandRequest. */
    interface ICommandRequest {

        /** CommandRequest callbackIdx */
        callbackIdx?: (number|null);

        /** CommandRequest singleCommand */
        singleCommand?: (command_request.ICommand|null);

        /** CommandRequest batch */
        batch?: (command_request.IBatch|null);

        /** CommandRequest scriptInvocation */
        scriptInvocation?: (command_request.IScriptInvocation|null);

        /** CommandRequest scriptInvocationPointers */
        scriptInvocationPointers?: (command_request.IScriptInvocationPointers|null);

        /** CommandRequest clusterScan */
        clusterScan?: (command_request.IClusterScan|null);

        /** CommandRequest updateConnectionPassword */
        updateConnectionPassword?: (command_request.IUpdateConnectionPassword|null);

        /** CommandRequest refreshIamToken */
        refreshIamToken?: (command_request.IRefreshIamToken|null);

        /** CommandRequest getCacheMetrics */
        getCacheMetrics?: (command_request.IGetCacheMetrics|null);

        /** CommandRequest route */
        route?: (command_request.IRoutes|null);

        /** CommandRequest rootSpanPtr */
        rootSpanPtr?: (number|Long|null);
    }

    /** Represents a CommandRequest. */
    class CommandRequest implements ICommandRequest {

        /**
         * Constructs a new CommandRequest.
         * @param [properties] Properties to set
         */
        constructor(properties?: command_request.ICommandRequest);

        /** CommandRequest callbackIdx. */
        public callbackIdx: number;

        /** CommandRequest singleCommand. */
        public singleCommand?: (command_request.ICommand|null);

        /** CommandRequest batch. */
        public batch?: (command_request.IBatch|null);

        /** CommandRequest scriptInvocation. */
        public scriptInvocation?: (command_request.IScriptInvocation|null);

        /** CommandRequest scriptInvocationPointers. */
        public scriptInvocationPointers?: (command_request.IScriptInvocationPointers|null);

        /** CommandRequest clusterScan. */
        public clusterScan?: (command_request.IClusterScan|null);

        /** CommandRequest updateConnectionPassword. */
        public updateConnectionPassword?: (command_request.IUpdateConnectionPassword|null);

        /** CommandRequest refreshIamToken. */
        public refreshIamToken?: (command_request.IRefreshIamToken|null);

        /** CommandRequest getCacheMetrics. */
        public getCacheMetrics?: (command_request.IGetCacheMetrics|null);

        /** CommandRequest route. */
        public route?: (command_request.IRoutes|null);

        /** CommandRequest rootSpanPtr. */
        public rootSpanPtr?: (number|Long|null);

        /** CommandRequest command. */
        public command?: ("singleCommand"|"batch"|"scriptInvocation"|"scriptInvocationPointers"|"clusterScan"|"updateConnectionPassword"|"refreshIamToken"|"getCacheMetrics");

        /**
         * Creates a new CommandRequest instance using the specified properties.
         * @param [properties] Properties to set
         * @returns CommandRequest instance
         */
        public static create(properties?: command_request.ICommandRequest): command_request.CommandRequest;

        /**
         * Encodes the specified CommandRequest message. Does not implicitly {@link command_request.CommandRequest.verify|verify} messages.
         * @param message CommandRequest message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: command_request.ICommandRequest, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified CommandRequest message, length delimited. Does not implicitly {@link command_request.CommandRequest.verify|verify} messages.
         * @param message CommandRequest message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: command_request.ICommandRequest, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a CommandRequest message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns CommandRequest
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): command_request.CommandRequest;

        /**
         * Decodes a CommandRequest message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns CommandRequest
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): command_request.CommandRequest;

        /**
         * Gets the default type url for CommandRequest
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }
}

/** Namespace connection_request. */
export namespace connection_request {

    /** Properties of a NodeAddress. */
    interface INodeAddress {

        /** NodeAddress host */
        host?: (string|null);

        /** NodeAddress port */
        port?: (number|null);
    }

    /** Represents a NodeAddress. */
    class NodeAddress implements INodeAddress {

        /**
         * Constructs a new NodeAddress.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.INodeAddress);

        /** NodeAddress host. */
        public host: string;

        /** NodeAddress port. */
        public port: number;

        /**
         * Creates a new NodeAddress instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NodeAddress instance
         */
        public static create(properties?: connection_request.INodeAddress): connection_request.NodeAddress;

        /**
         * Encodes the specified NodeAddress message. Does not implicitly {@link connection_request.NodeAddress.verify|verify} messages.
         * @param message NodeAddress message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.INodeAddress, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NodeAddress message, length delimited. Does not implicitly {@link connection_request.NodeAddress.verify|verify} messages.
         * @param message NodeAddress message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.INodeAddress, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NodeAddress message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NodeAddress
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.NodeAddress;

        /**
         * Decodes a NodeAddress message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NodeAddress
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.NodeAddress;

        /**
         * Gets the default type url for NodeAddress
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** ReadFrom enum. */
    enum ReadFrom {
        Primary = 0,
        PreferReplica = 1,
        LowestLatency = 2,
        AZAffinity = 3,
        AZAffinityReplicasAndPrimary = 4,
        AllNodes = 5
    }

    /** TlsMode enum. */
    enum TlsMode {
        NoTls = 0,
        SecureTls = 1,
        InsecureTls = 2
    }

    /** Properties of an AuthenticationInfo. */
    interface IAuthenticationInfo {

        /** AuthenticationInfo password */
        password?: (string|null);

        /** AuthenticationInfo username */
        username?: (string|null);

        /** AuthenticationInfo iamCredentials */
        iamCredentials?: (connection_request.IIamCredentials|null);
    }

    /** Represents an AuthenticationInfo. */
    class AuthenticationInfo implements IAuthenticationInfo {

        /**
         * Constructs a new AuthenticationInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IAuthenticationInfo);

        /** AuthenticationInfo password. */
        public password: string;

        /** AuthenticationInfo username. */
        public username: string;

        /** AuthenticationInfo iamCredentials. */
        public iamCredentials?: (connection_request.IIamCredentials|null);

        /**
         * Creates a new AuthenticationInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns AuthenticationInfo instance
         */
        public static create(properties?: connection_request.IAuthenticationInfo): connection_request.AuthenticationInfo;

        /**
         * Encodes the specified AuthenticationInfo message. Does not implicitly {@link connection_request.AuthenticationInfo.verify|verify} messages.
         * @param message AuthenticationInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IAuthenticationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified AuthenticationInfo message, length delimited. Does not implicitly {@link connection_request.AuthenticationInfo.verify|verify} messages.
         * @param message AuthenticationInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IAuthenticationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an AuthenticationInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns AuthenticationInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.AuthenticationInfo;

        /**
         * Decodes an AuthenticationInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns AuthenticationInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.AuthenticationInfo;

        /**
         * Gets the default type url for AuthenticationInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** ServiceType enum. */
    enum ServiceType {
        ELASTICACHE = 0,
        MEMORYDB = 1
    }

    /** Properties of an IamCredentials. */
    interface IIamCredentials {

        /** IamCredentials clusterName */
        clusterName?: (string|null);

        /** IamCredentials region */
        region?: (string|null);

        /** IamCredentials serviceType */
        serviceType?: (connection_request.ServiceType|null);

        /** IamCredentials refreshIntervalSeconds */
        refreshIntervalSeconds?: (number|null);
    }

    /** Represents an IamCredentials. */
    class IamCredentials implements IIamCredentials {

        /**
         * Constructs a new IamCredentials.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IIamCredentials);

        /** IamCredentials clusterName. */
        public clusterName: string;

        /** IamCredentials region. */
        public region: string;

        /** IamCredentials serviceType. */
        public serviceType: connection_request.ServiceType;

        /** IamCredentials refreshIntervalSeconds. */
        public refreshIntervalSeconds?: (number|null);

        /**
         * Creates a new IamCredentials instance using the specified properties.
         * @param [properties] Properties to set
         * @returns IamCredentials instance
         */
        public static create(properties?: connection_request.IIamCredentials): connection_request.IamCredentials;

        /**
         * Encodes the specified IamCredentials message. Does not implicitly {@link connection_request.IamCredentials.verify|verify} messages.
         * @param message IamCredentials message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IIamCredentials, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified IamCredentials message, length delimited. Does not implicitly {@link connection_request.IamCredentials.verify|verify} messages.
         * @param message IamCredentials message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IIamCredentials, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an IamCredentials message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns IamCredentials
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.IamCredentials;

        /**
         * Decodes an IamCredentials message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns IamCredentials
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.IamCredentials;

        /**
         * Gets the default type url for IamCredentials
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** ProtocolVersion enum. */
    enum ProtocolVersion {
        RESP3 = 0,
        RESP2 = 1
    }

    /** Properties of a PeriodicChecksManualInterval. */
    interface IPeriodicChecksManualInterval {

        /** PeriodicChecksManualInterval durationInSec */
        durationInSec?: (number|null);
    }

    /** Represents a PeriodicChecksManualInterval. */
    class PeriodicChecksManualInterval implements IPeriodicChecksManualInterval {

        /**
         * Constructs a new PeriodicChecksManualInterval.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IPeriodicChecksManualInterval);

        /** PeriodicChecksManualInterval durationInSec. */
        public durationInSec: number;

        /**
         * Creates a new PeriodicChecksManualInterval instance using the specified properties.
         * @param [properties] Properties to set
         * @returns PeriodicChecksManualInterval instance
         */
        public static create(properties?: connection_request.IPeriodicChecksManualInterval): connection_request.PeriodicChecksManualInterval;

        /**
         * Encodes the specified PeriodicChecksManualInterval message. Does not implicitly {@link connection_request.PeriodicChecksManualInterval.verify|verify} messages.
         * @param message PeriodicChecksManualInterval message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IPeriodicChecksManualInterval, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified PeriodicChecksManualInterval message, length delimited. Does not implicitly {@link connection_request.PeriodicChecksManualInterval.verify|verify} messages.
         * @param message PeriodicChecksManualInterval message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IPeriodicChecksManualInterval, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a PeriodicChecksManualInterval message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns PeriodicChecksManualInterval
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.PeriodicChecksManualInterval;

        /**
         * Decodes a PeriodicChecksManualInterval message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns PeriodicChecksManualInterval
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.PeriodicChecksManualInterval;

        /**
         * Gets the default type url for PeriodicChecksManualInterval
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a PeriodicChecksDisabled. */
    interface IPeriodicChecksDisabled {
    }

    /** Represents a PeriodicChecksDisabled. */
    class PeriodicChecksDisabled implements IPeriodicChecksDisabled {

        /**
         * Constructs a new PeriodicChecksDisabled.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IPeriodicChecksDisabled);

        /**
         * Creates a new PeriodicChecksDisabled instance using the specified properties.
         * @param [properties] Properties to set
         * @returns PeriodicChecksDisabled instance
         */
        public static create(properties?: connection_request.IPeriodicChecksDisabled): connection_request.PeriodicChecksDisabled;

        /**
         * Encodes the specified PeriodicChecksDisabled message. Does not implicitly {@link connection_request.PeriodicChecksDisabled.verify|verify} messages.
         * @param message PeriodicChecksDisabled message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IPeriodicChecksDisabled, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified PeriodicChecksDisabled message, length delimited. Does not implicitly {@link connection_request.PeriodicChecksDisabled.verify|verify} messages.
         * @param message PeriodicChecksDisabled message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IPeriodicChecksDisabled, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a PeriodicChecksDisabled message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns PeriodicChecksDisabled
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.PeriodicChecksDisabled;

        /**
         * Decodes a PeriodicChecksDisabled message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns PeriodicChecksDisabled
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.PeriodicChecksDisabled;

        /**
         * Gets the default type url for PeriodicChecksDisabled
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** PubSubChannelType enum. */
    enum PubSubChannelType {
        Exact = 0,
        Pattern = 1,
        Sharded = 2
    }

    /** CompressionBackend enum. */
    enum CompressionBackend {
        ZSTD = 0,
        LZ4 = 1
    }

    /** NodeDiscoveryMode enum. */
    enum NodeDiscoveryMode {
        Standard = 0,
        Static = 1,
        DiscoverAll = 2
    }

    /** Properties of a CompressionConfig. */
    interface ICompressionConfig {

        /** CompressionConfig enabled */
        enabled?: (boolean|null);

        /** CompressionConfig backend */
        backend?: (connection_request.CompressionBackend|null);

        /** CompressionConfig compressionLevel */
        compressionLevel?: (number|null);

        /** CompressionConfig minCompressionSize */
        minCompressionSize?: (number|null);

        /** CompressionConfig maxDecompressedSize */
        maxDecompressedSize?: (number|Long|null);
    }

    /** Represents a CompressionConfig. */
    class CompressionConfig implements ICompressionConfig {

        /**
         * Constructs a new CompressionConfig.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.ICompressionConfig);

        /** CompressionConfig enabled. */
        public enabled: boolean;

        /** CompressionConfig backend. */
        public backend: connection_request.CompressionBackend;

        /** CompressionConfig compressionLevel. */
        public compressionLevel?: (number|null);

        /** CompressionConfig minCompressionSize. */
        public minCompressionSize: number;

        /** CompressionConfig maxDecompressedSize. */
        public maxDecompressedSize?: (number|Long|null);

        /**
         * Creates a new CompressionConfig instance using the specified properties.
         * @param [properties] Properties to set
         * @returns CompressionConfig instance
         */
        public static create(properties?: connection_request.ICompressionConfig): connection_request.CompressionConfig;

        /**
         * Encodes the specified CompressionConfig message. Does not implicitly {@link connection_request.CompressionConfig.verify|verify} messages.
         * @param message CompressionConfig message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.ICompressionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified CompressionConfig message, length delimited. Does not implicitly {@link connection_request.CompressionConfig.verify|verify} messages.
         * @param message CompressionConfig message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.ICompressionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a CompressionConfig message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns CompressionConfig
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.CompressionConfig;

        /**
         * Decodes a CompressionConfig message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns CompressionConfig
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.CompressionConfig;

        /**
         * Gets the default type url for CompressionConfig
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a PubSubChannelsOrPatterns. */
    interface IPubSubChannelsOrPatterns {

        /** PubSubChannelsOrPatterns channelsOrPatterns */
        channelsOrPatterns?: (Uint8Array[]|null);
    }

    /** Represents a PubSubChannelsOrPatterns. */
    class PubSubChannelsOrPatterns implements IPubSubChannelsOrPatterns {

        /**
         * Constructs a new PubSubChannelsOrPatterns.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IPubSubChannelsOrPatterns);

        /** PubSubChannelsOrPatterns channelsOrPatterns. */
        public channelsOrPatterns: Uint8Array[];

        /**
         * Creates a new PubSubChannelsOrPatterns instance using the specified properties.
         * @param [properties] Properties to set
         * @returns PubSubChannelsOrPatterns instance
         */
        public static create(properties?: connection_request.IPubSubChannelsOrPatterns): connection_request.PubSubChannelsOrPatterns;

        /**
         * Encodes the specified PubSubChannelsOrPatterns message. Does not implicitly {@link connection_request.PubSubChannelsOrPatterns.verify|verify} messages.
         * @param message PubSubChannelsOrPatterns message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IPubSubChannelsOrPatterns, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified PubSubChannelsOrPatterns message, length delimited. Does not implicitly {@link connection_request.PubSubChannelsOrPatterns.verify|verify} messages.
         * @param message PubSubChannelsOrPatterns message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IPubSubChannelsOrPatterns, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a PubSubChannelsOrPatterns message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns PubSubChannelsOrPatterns
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.PubSubChannelsOrPatterns;

        /**
         * Decodes a PubSubChannelsOrPatterns message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns PubSubChannelsOrPatterns
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.PubSubChannelsOrPatterns;

        /**
         * Gets the default type url for PubSubChannelsOrPatterns
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a PubSubSubscriptions. */
    interface IPubSubSubscriptions {

        /** PubSubSubscriptions channelsOrPatternsByType */
        channelsOrPatternsByType?: ({ [k: string]: connection_request.IPubSubChannelsOrPatterns }|null);
    }

    /** Represents a PubSubSubscriptions. */
    class PubSubSubscriptions implements IPubSubSubscriptions {

        /**
         * Constructs a new PubSubSubscriptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IPubSubSubscriptions);

        /** PubSubSubscriptions channelsOrPatternsByType. */
        public channelsOrPatternsByType: { [k: string]: connection_request.IPubSubChannelsOrPatterns };

        /**
         * Creates a new PubSubSubscriptions instance using the specified properties.
         * @param [properties] Properties to set
         * @returns PubSubSubscriptions instance
         */
        public static create(properties?: connection_request.IPubSubSubscriptions): connection_request.PubSubSubscriptions;

        /**
         * Encodes the specified PubSubSubscriptions message. Does not implicitly {@link connection_request.PubSubSubscriptions.verify|verify} messages.
         * @param message PubSubSubscriptions message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IPubSubSubscriptions, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified PubSubSubscriptions message, length delimited. Does not implicitly {@link connection_request.PubSubSubscriptions.verify|verify} messages.
         * @param message PubSubSubscriptions message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IPubSubSubscriptions, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a PubSubSubscriptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns PubSubSubscriptions
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.PubSubSubscriptions;

        /**
         * Decodes a PubSubSubscriptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns PubSubSubscriptions
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.PubSubSubscriptions;

        /**
         * Gets the default type url for PubSubSubscriptions
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ClientSideCache. */
    interface IClientSideCache {

        /** ClientSideCache cacheId */
        cacheId?: (string|null);

        /** ClientSideCache maxCacheKb */
        maxCacheKb?: (number|Long|null);

        /** ClientSideCache entryTtlMs */
        entryTtlMs?: (number|Long|null);

        /** ClientSideCache evictionPolicy */
        evictionPolicy?: (connection_request.EvictionPolicy|null);

        /** ClientSideCache enableMetrics */
        enableMetrics?: (boolean|null);
    }

    /** Represents a ClientSideCache. */
    class ClientSideCache implements IClientSideCache {

        /**
         * Constructs a new ClientSideCache.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IClientSideCache);

        /** ClientSideCache cacheId. */
        public cacheId: string;

        /** ClientSideCache maxCacheKb. */
        public maxCacheKb: (number|Long);

        /** ClientSideCache entryTtlMs. */
        public entryTtlMs: (number|Long);

        /** ClientSideCache evictionPolicy. */
        public evictionPolicy?: (connection_request.EvictionPolicy|null);

        /** ClientSideCache enableMetrics. */
        public enableMetrics: boolean;

        /**
         * Creates a new ClientSideCache instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ClientSideCache instance
         */
        public static create(properties?: connection_request.IClientSideCache): connection_request.ClientSideCache;

        /**
         * Encodes the specified ClientSideCache message. Does not implicitly {@link connection_request.ClientSideCache.verify|verify} messages.
         * @param message ClientSideCache message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IClientSideCache, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ClientSideCache message, length delimited. Does not implicitly {@link connection_request.ClientSideCache.verify|verify} messages.
         * @param message ClientSideCache message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IClientSideCache, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ClientSideCache message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ClientSideCache
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.ClientSideCache;

        /**
         * Decodes a ClientSideCache message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ClientSideCache
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.ClientSideCache;

        /**
         * Gets the default type url for ClientSideCache
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** EvictionPolicy enum. */
    enum EvictionPolicy {
        LRU = 0,
        LFU = 1
    }

    /** Properties of a ConnectionRequest. */
    interface IConnectionRequest {

        /** ConnectionRequest addresses */
        addresses?: (connection_request.INodeAddress[]|null);

        /** ConnectionRequest tlsMode */
        tlsMode?: (connection_request.TlsMode|null);

        /** ConnectionRequest clusterModeEnabled */
        clusterModeEnabled?: (boolean|null);

        /** ConnectionRequest requestTimeout */
        requestTimeout?: (number|null);

        /** ConnectionRequest readFrom */
        readFrom?: (connection_request.ReadFrom|null);

        /** ConnectionRequest connectionRetryStrategy */
        connectionRetryStrategy?: (connection_request.IConnectionRetryStrategy|null);

        /** ConnectionRequest authenticationInfo */
        authenticationInfo?: (connection_request.IAuthenticationInfo|null);

        /** ConnectionRequest databaseId */
        databaseId?: (number|null);

        /** ConnectionRequest protocol */
        protocol?: (connection_request.ProtocolVersion|null);

        /** ConnectionRequest clientName */
        clientName?: (string|null);

        /** ConnectionRequest periodicChecksManualInterval */
        periodicChecksManualInterval?: (connection_request.IPeriodicChecksManualInterval|null);

        /** ConnectionRequest periodicChecksDisabled */
        periodicChecksDisabled?: (connection_request.IPeriodicChecksDisabled|null);

        /** ConnectionRequest pubsubSubscriptions */
        pubsubSubscriptions?: (connection_request.IPubSubSubscriptions|null);

        /** ConnectionRequest inflightRequestsLimit */
        inflightRequestsLimit?: (number|null);

        /** ConnectionRequest clientAz */
        clientAz?: (string|null);

        /** ConnectionRequest connectionTimeout */
        connectionTimeout?: (number|null);

        /** ConnectionRequest lazyConnect */
        lazyConnect?: (boolean|null);

        /** ConnectionRequest refreshTopologyFromInitialNodes */
        refreshTopologyFromInitialNodes?: (boolean|null);

        /** ConnectionRequest libName */
        libName?: (string|null);

        /** ConnectionRequest rootCerts */
        rootCerts?: (Uint8Array[]|null);

        /** ConnectionRequest compressionConfig */
        compressionConfig?: (connection_request.ICompressionConfig|null);

        /** ConnectionRequest clientCert */
        clientCert?: (Uint8Array|null);

        /** ConnectionRequest clientKey */
        clientKey?: (Uint8Array|null);

        /** ConnectionRequest tcpNodelay */
        tcpNodelay?: (boolean|null);

        /** ConnectionRequest pubsubReconciliationIntervalMs */
        pubsubReconciliationIntervalMs?: (number|null);

        /** ConnectionRequest readOnly */
        readOnly?: (boolean|null);

        /** ConnectionRequest clientSideCache */
        clientSideCache?: (connection_request.IClientSideCache|null);

        /** ConnectionRequest nodeDiscoveryMode */
        nodeDiscoveryMode?: (connection_request.NodeDiscoveryMode|null);

        /** ConnectionRequest addressResolverKey */
        addressResolverKey?: (string|null);
    }

    /** Represents a ConnectionRequest. */
    class ConnectionRequest implements IConnectionRequest {

        /**
         * Constructs a new ConnectionRequest.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IConnectionRequest);

        /** ConnectionRequest addresses. */
        public addresses: connection_request.INodeAddress[];

        /** ConnectionRequest tlsMode. */
        public tlsMode: connection_request.TlsMode;

        /** ConnectionRequest clusterModeEnabled. */
        public clusterModeEnabled: boolean;

        /** ConnectionRequest requestTimeout. */
        public requestTimeout: number;

        /** ConnectionRequest readFrom. */
        public readFrom: connection_request.ReadFrom;

        /** ConnectionRequest connectionRetryStrategy. */
        public connectionRetryStrategy?: (connection_request.IConnectionRetryStrategy|null);

        /** ConnectionRequest authenticationInfo. */
        public authenticationInfo?: (connection_request.IAuthenticationInfo|null);

        /** ConnectionRequest databaseId. */
        public databaseId: number;

        /** ConnectionRequest protocol. */
        public protocol: connection_request.ProtocolVersion;

        /** ConnectionRequest clientName. */
        public clientName: string;

        /** ConnectionRequest periodicChecksManualInterval. */
        public periodicChecksManualInterval?: (connection_request.IPeriodicChecksManualInterval|null);

        /** ConnectionRequest periodicChecksDisabled. */
        public periodicChecksDisabled?: (connection_request.IPeriodicChecksDisabled|null);

        /** ConnectionRequest pubsubSubscriptions. */
        public pubsubSubscriptions?: (connection_request.IPubSubSubscriptions|null);

        /** ConnectionRequest inflightRequestsLimit. */
        public inflightRequestsLimit: number;

        /** ConnectionRequest clientAz. */
        public clientAz: string;

        /** ConnectionRequest connectionTimeout. */
        public connectionTimeout: number;

        /** ConnectionRequest lazyConnect. */
        public lazyConnect: boolean;

        /** ConnectionRequest refreshTopologyFromInitialNodes. */
        public refreshTopologyFromInitialNodes: boolean;

        /** ConnectionRequest libName. */
        public libName: string;

        /** ConnectionRequest rootCerts. */
        public rootCerts: Uint8Array[];

        /** ConnectionRequest compressionConfig. */
        public compressionConfig?: (connection_request.ICompressionConfig|null);

        /** ConnectionRequest clientCert. */
        public clientCert: Uint8Array;

        /** ConnectionRequest clientKey. */
        public clientKey: Uint8Array;

        /** ConnectionRequest tcpNodelay. */
        public tcpNodelay?: (boolean|null);

        /** ConnectionRequest pubsubReconciliationIntervalMs. */
        public pubsubReconciliationIntervalMs?: (number|null);

        /** ConnectionRequest readOnly. */
        public readOnly?: (boolean|null);

        /** ConnectionRequest clientSideCache. */
        public clientSideCache?: (connection_request.IClientSideCache|null);

        /** ConnectionRequest nodeDiscoveryMode. */
        public nodeDiscoveryMode: connection_request.NodeDiscoveryMode;

        /** ConnectionRequest addressResolverKey. */
        public addressResolverKey?: (string|null);

        /** ConnectionRequest periodicChecks. */
        public periodicChecks?: ("periodicChecksManualInterval"|"periodicChecksDisabled");

        /**
         * Creates a new ConnectionRequest instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ConnectionRequest instance
         */
        public static create(properties?: connection_request.IConnectionRequest): connection_request.ConnectionRequest;

        /**
         * Encodes the specified ConnectionRequest message. Does not implicitly {@link connection_request.ConnectionRequest.verify|verify} messages.
         * @param message ConnectionRequest message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ConnectionRequest message, length delimited. Does not implicitly {@link connection_request.ConnectionRequest.verify|verify} messages.
         * @param message ConnectionRequest message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ConnectionRequest message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ConnectionRequest
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.ConnectionRequest;

        /**
         * Decodes a ConnectionRequest message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ConnectionRequest
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.ConnectionRequest;

        /**
         * Gets the default type url for ConnectionRequest
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ConnectionRetryStrategy. */
    interface IConnectionRetryStrategy {

        /** ConnectionRetryStrategy numberOfRetries */
        numberOfRetries?: (number|null);

        /** ConnectionRetryStrategy factor */
        factor?: (number|null);

        /** ConnectionRetryStrategy exponentBase */
        exponentBase?: (number|null);

        /** ConnectionRetryStrategy jitterPercent */
        jitterPercent?: (number|null);
    }

    /** Represents a ConnectionRetryStrategy. */
    class ConnectionRetryStrategy implements IConnectionRetryStrategy {

        /**
         * Constructs a new ConnectionRetryStrategy.
         * @param [properties] Properties to set
         */
        constructor(properties?: connection_request.IConnectionRetryStrategy);

        /** ConnectionRetryStrategy numberOfRetries. */
        public numberOfRetries: number;

        /** ConnectionRetryStrategy factor. */
        public factor: number;

        /** ConnectionRetryStrategy exponentBase. */
        public exponentBase: number;

        /** ConnectionRetryStrategy jitterPercent. */
        public jitterPercent?: (number|null);

        /**
         * Creates a new ConnectionRetryStrategy instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ConnectionRetryStrategy instance
         */
        public static create(properties?: connection_request.IConnectionRetryStrategy): connection_request.ConnectionRetryStrategy;

        /**
         * Encodes the specified ConnectionRetryStrategy message. Does not implicitly {@link connection_request.ConnectionRetryStrategy.verify|verify} messages.
         * @param message ConnectionRetryStrategy message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: connection_request.IConnectionRetryStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ConnectionRetryStrategy message, length delimited. Does not implicitly {@link connection_request.ConnectionRetryStrategy.verify|verify} messages.
         * @param message ConnectionRetryStrategy message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: connection_request.IConnectionRetryStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ConnectionRetryStrategy message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ConnectionRetryStrategy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): connection_request.ConnectionRetryStrategy;

        /**
         * Decodes a ConnectionRetryStrategy message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ConnectionRetryStrategy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): connection_request.ConnectionRetryStrategy;

        /**
         * Gets the default type url for ConnectionRetryStrategy
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }
}

/** Namespace response. */
export namespace response {

    /** RequestErrorType enum. */
    enum RequestErrorType {
        Unspecified = 0,
        ExecAbort = 1,
        Timeout = 2,
        Disconnect = 3
    }

    /** Properties of a RequestError. */
    interface IRequestError {

        /** RequestError type */
        type?: (response.RequestErrorType|null);

        /** RequestError message */
        message?: (string|null);
    }

    /** Represents a RequestError. */
    class RequestError implements IRequestError {

        /**
         * Constructs a new RequestError.
         * @param [properties] Properties to set
         */
        constructor(properties?: response.IRequestError);

        /** RequestError type. */
        public type: response.RequestErrorType;

        /** RequestError message. */
        public message: string;

        /**
         * Creates a new RequestError instance using the specified properties.
         * @param [properties] Properties to set
         * @returns RequestError instance
         */
        public static create(properties?: response.IRequestError): response.RequestError;

        /**
         * Encodes the specified RequestError message. Does not implicitly {@link response.RequestError.verify|verify} messages.
         * @param message RequestError message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: response.IRequestError, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified RequestError message, length delimited. Does not implicitly {@link response.RequestError.verify|verify} messages.
         * @param message RequestError message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: response.IRequestError, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a RequestError message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns RequestError
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): response.RequestError;

        /**
         * Decodes a RequestError message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns RequestError
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): response.RequestError;

        /**
         * Gets the default type url for RequestError
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a Response. */
    interface IResponse {

        /** Response callbackIdx */
        callbackIdx?: (number|null);

        /** Response respPointer */
        respPointer?: (number|Long|null);

        /** Response constantResponse */
        constantResponse?: (response.ConstantResponse|null);

        /** Response requestError */
        requestError?: (response.IRequestError|null);

        /** Response closingError */
        closingError?: (string|null);

        /** Response isPush */
        isPush?: (boolean|null);

        /** Response rootSpanPtr */
        rootSpanPtr?: (number|Long|null);
    }

    /** Represents a Response. */
    class Response implements IResponse {

        /**
         * Constructs a new Response.
         * @param [properties] Properties to set
         */
        constructor(properties?: response.IResponse);

        /** Response callbackIdx. */
        public callbackIdx: number;

        /** Response respPointer. */
        public respPointer?: (number|Long|null);

        /** Response constantResponse. */
        public constantResponse?: (response.ConstantResponse|null);

        /** Response requestError. */
        public requestError?: (response.IRequestError|null);

        /** Response closingError. */
        public closingError?: (string|null);

        /** Response isPush. */
        public isPush: boolean;

        /** Response rootSpanPtr. */
        public rootSpanPtr?: (number|Long|null);

        /** Response value. */
        public value?: ("respPointer"|"constantResponse"|"requestError"|"closingError");

        /**
         * Creates a new Response instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Response instance
         */
        public static create(properties?: response.IResponse): response.Response;

        /**
         * Encodes the specified Response message. Does not implicitly {@link response.Response.verify|verify} messages.
         * @param message Response message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: response.IResponse, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Response message, length delimited. Does not implicitly {@link response.Response.verify|verify} messages.
         * @param message Response message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: response.IResponse, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a Response message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Response
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): response.Response;

        /**
         * Decodes a Response message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Response
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): response.Response;

        /**
         * Gets the default type url for Response
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** ConstantResponse enum. */
    enum ConstantResponse {
        OK = 0
    }
}
