import * as $protobuf from "protobufjs";
/** Namespace akkaserverless. */
export namespace akkaserverless {

    /** Properties of a FieldOptions. */
    interface IFieldOptions {

        /** FieldOptions entityKey */
        entityKey?: (boolean|null);

        /** FieldOptions jwt */
        jwt?: (akkaserverless.IJwtFieldOptions|null);
    }

    /** Represents a FieldOptions. */
    class FieldOptions implements IFieldOptions {

        /**
         * Constructs a new FieldOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IFieldOptions);

        /** FieldOptions entityKey. */
        public entityKey: boolean;

        /** FieldOptions jwt. */
        public jwt?: (akkaserverless.IJwtFieldOptions|null);

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

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

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

        /**
         * Decodes a FieldOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns FieldOptions
         * @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): akkaserverless.FieldOptions;

        /**
         * Decodes a FieldOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns FieldOptions
         * @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)): akkaserverless.FieldOptions;

        /**
         * Verifies a FieldOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns FieldOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.FieldOptions;

        /**
         * Creates a plain object from a FieldOptions message. Also converts values to other types if specified.
         * @param message FieldOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this FieldOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a FileOptions. */
    interface IFileOptions {

        /** FileOptions eventSourcedEntity */
        eventSourcedEntity?: (akkaserverless.IEventSourcedEntity|null);

        /** FileOptions valueEntity */
        valueEntity?: (akkaserverless.IValueEntity|null);

        /** FileOptions replicatedEntity */
        replicatedEntity?: (akkaserverless.IReplicatedEntity|null);
    }

    /** Represents a FileOptions. */
    class FileOptions implements IFileOptions {

        /**
         * Constructs a new FileOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IFileOptions);

        /** FileOptions eventSourcedEntity. */
        public eventSourcedEntity?: (akkaserverless.IEventSourcedEntity|null);

        /** FileOptions valueEntity. */
        public valueEntity?: (akkaserverless.IValueEntity|null);

        /** FileOptions replicatedEntity. */
        public replicatedEntity?: (akkaserverless.IReplicatedEntity|null);

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

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

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

        /**
         * Decodes a FileOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns FileOptions
         * @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): akkaserverless.FileOptions;

        /**
         * Decodes a FileOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns FileOptions
         * @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)): akkaserverless.FileOptions;

        /**
         * Verifies a FileOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a FileOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns FileOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.FileOptions;

        /**
         * Creates a plain object from a FileOptions message. Also converts values to other types if specified.
         * @param message FileOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this FileOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a MessageOptions. */
    interface IMessageOptions {

        /** MessageOptions jwt */
        jwt?: (akkaserverless.IJwtMessageOptions|null);
    }

    /** Represents a MessageOptions. */
    class MessageOptions implements IMessageOptions {

        /**
         * Constructs a new MessageOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IMessageOptions);

        /** MessageOptions jwt. */
        public jwt?: (akkaserverless.IJwtMessageOptions|null);

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

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

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

        /**
         * Decodes a MessageOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns MessageOptions
         * @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): akkaserverless.MessageOptions;

        /**
         * Decodes a MessageOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns MessageOptions
         * @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)): akkaserverless.MessageOptions;

        /**
         * Verifies a MessageOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns MessageOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.MessageOptions;

        /**
         * Creates a plain object from a MessageOptions message. Also converts values to other types if specified.
         * @param message MessageOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this MessageOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a MethodOptions. */
    interface IMethodOptions {

        /** MethodOptions eventing */
        eventing?: (akkaserverless.IEventing|null);

        /** MethodOptions view */
        view?: (akkaserverless.IView|null);

        /** MethodOptions jwt */
        jwt?: (akkaserverless.IJwtMethodOptions|null);

        /** MethodOptions entity */
        entity?: (akkaserverless.IEntityMethodOptions|null);
    }

    /** Represents a MethodOptions. */
    class MethodOptions implements IMethodOptions {

        /**
         * Constructs a new MethodOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IMethodOptions);

        /** MethodOptions eventing. */
        public eventing?: (akkaserverless.IEventing|null);

        /** MethodOptions view. */
        public view?: (akkaserverless.IView|null);

        /** MethodOptions jwt. */
        public jwt?: (akkaserverless.IJwtMethodOptions|null);

        /** MethodOptions entity. */
        public entity?: (akkaserverless.IEntityMethodOptions|null);

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

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

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

        /**
         * Decodes a MethodOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns MethodOptions
         * @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): akkaserverless.MethodOptions;

        /**
         * Decodes a MethodOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns MethodOptions
         * @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)): akkaserverless.MethodOptions;

        /**
         * Verifies a MethodOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns MethodOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.MethodOptions;

        /**
         * Creates a plain object from a MethodOptions message. Also converts values to other types if specified.
         * @param message MethodOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this MethodOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ServiceOptions. */
    interface IServiceOptions {

        /** ServiceOptions type */
        type?: (akkaserverless.ServiceOptions.ServiceType|null);

        /** ServiceOptions component */
        component?: (string|null);
    }

    /** Represents a ServiceOptions. */
    class ServiceOptions implements IServiceOptions {

        /**
         * Constructs a new ServiceOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IServiceOptions);

        /** ServiceOptions type. */
        public type: akkaserverless.ServiceOptions.ServiceType;

        /** ServiceOptions component. */
        public component: string;

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

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

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

        /**
         * Decodes a ServiceOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ServiceOptions
         * @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): akkaserverless.ServiceOptions;

        /**
         * Decodes a ServiceOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ServiceOptions
         * @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)): akkaserverless.ServiceOptions;

        /**
         * Verifies a ServiceOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ServiceOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ServiceOptions;

        /**
         * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified.
         * @param message ServiceOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ServiceOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    namespace ServiceOptions {

        /** ServiceType enum. */
        enum ServiceType {
            SERVICE_TYPE_UNSPECIFIED = 0,
            SERVICE_TYPE_ACTION = 1,
            SERVICE_TYPE_ENTITY = 2,
            SERVICE_TYPE_VIEW = 3
        }
    }

    /** Properties of a CodegenOptions. */
    interface ICodegenOptions {

        /** CodegenOptions eventSourcedEntity */
        eventSourcedEntity?: (akkaserverless.IEventSourcedEntityDef|null);

        /** CodegenOptions valueEntity */
        valueEntity?: (akkaserverless.IValueEntityDef|null);

        /** CodegenOptions replicatedEntity */
        replicatedEntity?: (akkaserverless.IReplicatedEntityDef|null);

        /** CodegenOptions action */
        action?: (akkaserverless.IActionDef|null);

        /** CodegenOptions view */
        view?: (akkaserverless.IViewDef|null);
    }

    /** Represents a CodegenOptions. */
    class CodegenOptions implements ICodegenOptions {

        /**
         * Constructs a new CodegenOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.ICodegenOptions);

        /** CodegenOptions eventSourcedEntity. */
        public eventSourcedEntity?: (akkaserverless.IEventSourcedEntityDef|null);

        /** CodegenOptions valueEntity. */
        public valueEntity?: (akkaserverless.IValueEntityDef|null);

        /** CodegenOptions replicatedEntity. */
        public replicatedEntity?: (akkaserverless.IReplicatedEntityDef|null);

        /** CodegenOptions action. */
        public action?: (akkaserverless.IActionDef|null);

        /** CodegenOptions view. */
        public view?: (akkaserverless.IViewDef|null);

        /** CodegenOptions codegen. */
        public codegen?: ("eventSourcedEntity"|"valueEntity"|"replicatedEntity"|"action"|"view");

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

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

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

        /**
         * Decodes a CodegenOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns CodegenOptions
         * @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): akkaserverless.CodegenOptions;

        /**
         * Decodes a CodegenOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns CodegenOptions
         * @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)): akkaserverless.CodegenOptions;

        /**
         * Verifies a CodegenOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a CodegenOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns CodegenOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.CodegenOptions;

        /**
         * Creates a plain object from a CodegenOptions message. Also converts values to other types if specified.
         * @param message CodegenOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.CodegenOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this CodegenOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of an ActionDef. */
    interface IActionDef {

        /** ActionDef name */
        name?: (string|null);
    }

    /** Represents an ActionDef. */
    class ActionDef implements IActionDef {

        /**
         * Constructs a new ActionDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IActionDef);

        /** ActionDef name. */
        public name: string;

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

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

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

        /**
         * Decodes an ActionDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ActionDef
         * @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): akkaserverless.ActionDef;

        /**
         * Decodes an ActionDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ActionDef
         * @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)): akkaserverless.ActionDef;

        /**
         * Verifies an ActionDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an ActionDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ActionDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ActionDef;

        /**
         * Creates a plain object from an ActionDef message. Also converts values to other types if specified.
         * @param message ActionDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ActionDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ActionDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ViewDef. */
    interface IViewDef {

        /** ViewDef name */
        name?: (string|null);
    }

    /** Represents a ViewDef. */
    class ViewDef implements IViewDef {

        /**
         * Constructs a new ViewDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IViewDef);

        /** ViewDef name. */
        public name: string;

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

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

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

        /**
         * Decodes a ViewDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ViewDef
         * @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): akkaserverless.ViewDef;

        /**
         * Decodes a ViewDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ViewDef
         * @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)): akkaserverless.ViewDef;

        /**
         * Verifies a ViewDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ViewDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ViewDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ViewDef;

        /**
         * Creates a plain object from a ViewDef message. Also converts values to other types if specified.
         * @param message ViewDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ViewDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ViewDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of an EventSourcedEntityDef. */
    interface IEventSourcedEntityDef {

        /** EventSourcedEntityDef name */
        name?: (string|null);

        /** EventSourcedEntityDef entityType */
        entityType?: (string|null);

        /** EventSourcedEntityDef state */
        state?: (string|null);

        /** EventSourcedEntityDef events */
        events?: (string[]|null);
    }

    /** Represents an EventSourcedEntityDef. */
    class EventSourcedEntityDef implements IEventSourcedEntityDef {

        /**
         * Constructs a new EventSourcedEntityDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IEventSourcedEntityDef);

        /** EventSourcedEntityDef name. */
        public name: string;

        /** EventSourcedEntityDef entityType. */
        public entityType: string;

        /** EventSourcedEntityDef state. */
        public state: string;

        /** EventSourcedEntityDef events. */
        public events: string[];

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

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

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

        /**
         * Decodes an EventSourcedEntityDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns EventSourcedEntityDef
         * @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): akkaserverless.EventSourcedEntityDef;

        /**
         * Decodes an EventSourcedEntityDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns EventSourcedEntityDef
         * @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)): akkaserverless.EventSourcedEntityDef;

        /**
         * Verifies an EventSourcedEntityDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an EventSourcedEntityDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns EventSourcedEntityDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.EventSourcedEntityDef;

        /**
         * Creates a plain object from an EventSourcedEntityDef message. Also converts values to other types if specified.
         * @param message EventSourcedEntityDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.EventSourcedEntityDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this EventSourcedEntityDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ValueEntityDef. */
    interface IValueEntityDef {

        /** ValueEntityDef name */
        name?: (string|null);

        /** ValueEntityDef entityType */
        entityType?: (string|null);

        /** ValueEntityDef state */
        state?: (string|null);
    }

    /** Represents a ValueEntityDef. */
    class ValueEntityDef implements IValueEntityDef {

        /**
         * Constructs a new ValueEntityDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IValueEntityDef);

        /** ValueEntityDef name. */
        public name: string;

        /** ValueEntityDef entityType. */
        public entityType: string;

        /** ValueEntityDef state. */
        public state: string;

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

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

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

        /**
         * Decodes a ValueEntityDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ValueEntityDef
         * @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): akkaserverless.ValueEntityDef;

        /**
         * Decodes a ValueEntityDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ValueEntityDef
         * @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)): akkaserverless.ValueEntityDef;

        /**
         * Verifies a ValueEntityDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ValueEntityDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ValueEntityDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ValueEntityDef;

        /**
         * Creates a plain object from a ValueEntityDef message. Also converts values to other types if specified.
         * @param message ValueEntityDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ValueEntityDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ValueEntityDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedEntityDef. */
    interface IReplicatedEntityDef {

        /** ReplicatedEntityDef name */
        name?: (string|null);

        /** ReplicatedEntityDef entityType */
        entityType?: (string|null);

        /** ReplicatedEntityDef replicatedCounter */
        replicatedCounter?: (akkaserverless.IReplicatedCounterDef|null);

        /** ReplicatedEntityDef replicatedRegister */
        replicatedRegister?: (akkaserverless.IReplicatedRegisterDef|null);

        /** ReplicatedEntityDef replicatedSet */
        replicatedSet?: (akkaserverless.IReplicatedSetDef|null);

        /** ReplicatedEntityDef replicatedMap */
        replicatedMap?: (akkaserverless.IReplicatedMapDef|null);

        /** ReplicatedEntityDef replicatedCounterMap */
        replicatedCounterMap?: (akkaserverless.IReplicatedCounterMapDef|null);

        /** ReplicatedEntityDef replicatedRegisterMap */
        replicatedRegisterMap?: (akkaserverless.IReplicatedRegisterMapDef|null);

        /** ReplicatedEntityDef replicatedMultiMap */
        replicatedMultiMap?: (akkaserverless.IReplicatedMultiMapDef|null);

        /** ReplicatedEntityDef replicatedVote */
        replicatedVote?: (akkaserverless.IReplicatedVoteDef|null);
    }

    /** Represents a ReplicatedEntityDef. */
    class ReplicatedEntityDef implements IReplicatedEntityDef {

        /**
         * Constructs a new ReplicatedEntityDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedEntityDef);

        /** ReplicatedEntityDef name. */
        public name: string;

        /** ReplicatedEntityDef entityType. */
        public entityType: string;

        /** ReplicatedEntityDef replicatedCounter. */
        public replicatedCounter?: (akkaserverless.IReplicatedCounterDef|null);

        /** ReplicatedEntityDef replicatedRegister. */
        public replicatedRegister?: (akkaserverless.IReplicatedRegisterDef|null);

        /** ReplicatedEntityDef replicatedSet. */
        public replicatedSet?: (akkaserverless.IReplicatedSetDef|null);

        /** ReplicatedEntityDef replicatedMap. */
        public replicatedMap?: (akkaserverless.IReplicatedMapDef|null);

        /** ReplicatedEntityDef replicatedCounterMap. */
        public replicatedCounterMap?: (akkaserverless.IReplicatedCounterMapDef|null);

        /** ReplicatedEntityDef replicatedRegisterMap. */
        public replicatedRegisterMap?: (akkaserverless.IReplicatedRegisterMapDef|null);

        /** ReplicatedEntityDef replicatedMultiMap. */
        public replicatedMultiMap?: (akkaserverless.IReplicatedMultiMapDef|null);

        /** ReplicatedEntityDef replicatedVote. */
        public replicatedVote?: (akkaserverless.IReplicatedVoteDef|null);

        /** ReplicatedEntityDef replicatedData. */
        public replicatedData?: ("replicatedCounter"|"replicatedRegister"|"replicatedSet"|"replicatedMap"|"replicatedCounterMap"|"replicatedRegisterMap"|"replicatedMultiMap"|"replicatedVote");

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

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

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

        /**
         * Decodes a ReplicatedEntityDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedEntityDef
         * @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): akkaserverless.ReplicatedEntityDef;

        /**
         * Decodes a ReplicatedEntityDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedEntityDef
         * @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)): akkaserverless.ReplicatedEntityDef;

        /**
         * Verifies a ReplicatedEntityDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedEntityDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedEntityDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedEntityDef;

        /**
         * Creates a plain object from a ReplicatedEntityDef message. Also converts values to other types if specified.
         * @param message ReplicatedEntityDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedEntityDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedEntityDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedCounterDef. */
    interface IReplicatedCounterDef {
    }

    /** Represents a ReplicatedCounterDef. */
    class ReplicatedCounterDef implements IReplicatedCounterDef {

        /**
         * Constructs a new ReplicatedCounterDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedCounterDef);

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

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

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

        /**
         * Decodes a ReplicatedCounterDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedCounterDef
         * @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): akkaserverless.ReplicatedCounterDef;

        /**
         * Decodes a ReplicatedCounterDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedCounterDef
         * @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)): akkaserverless.ReplicatedCounterDef;

        /**
         * Verifies a ReplicatedCounterDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedCounterDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedCounterDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedCounterDef;

        /**
         * Creates a plain object from a ReplicatedCounterDef message. Also converts values to other types if specified.
         * @param message ReplicatedCounterDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedCounterDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedCounterDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedRegisterDef. */
    interface IReplicatedRegisterDef {

        /** ReplicatedRegisterDef value */
        value?: (string|null);
    }

    /** Represents a ReplicatedRegisterDef. */
    class ReplicatedRegisterDef implements IReplicatedRegisterDef {

        /**
         * Constructs a new ReplicatedRegisterDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedRegisterDef);

        /** ReplicatedRegisterDef value. */
        public value: string;

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

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

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

        /**
         * Decodes a ReplicatedRegisterDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedRegisterDef
         * @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): akkaserverless.ReplicatedRegisterDef;

        /**
         * Decodes a ReplicatedRegisterDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedRegisterDef
         * @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)): akkaserverless.ReplicatedRegisterDef;

        /**
         * Verifies a ReplicatedRegisterDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedRegisterDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedRegisterDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedRegisterDef;

        /**
         * Creates a plain object from a ReplicatedRegisterDef message. Also converts values to other types if specified.
         * @param message ReplicatedRegisterDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedRegisterDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedRegisterDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedSetDef. */
    interface IReplicatedSetDef {

        /** ReplicatedSetDef element */
        element?: (string|null);
    }

    /** Represents a ReplicatedSetDef. */
    class ReplicatedSetDef implements IReplicatedSetDef {

        /**
         * Constructs a new ReplicatedSetDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedSetDef);

        /** ReplicatedSetDef element. */
        public element: string;

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

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

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

        /**
         * Decodes a ReplicatedSetDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedSetDef
         * @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): akkaserverless.ReplicatedSetDef;

        /**
         * Decodes a ReplicatedSetDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedSetDef
         * @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)): akkaserverless.ReplicatedSetDef;

        /**
         * Verifies a ReplicatedSetDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedSetDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedSetDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedSetDef;

        /**
         * Creates a plain object from a ReplicatedSetDef message. Also converts values to other types if specified.
         * @param message ReplicatedSetDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedSetDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedSetDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedMapDef. */
    interface IReplicatedMapDef {

        /** ReplicatedMapDef key */
        key?: (string|null);
    }

    /** Represents a ReplicatedMapDef. */
    class ReplicatedMapDef implements IReplicatedMapDef {

        /**
         * Constructs a new ReplicatedMapDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedMapDef);

        /** ReplicatedMapDef key. */
        public key: string;

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

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

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

        /**
         * Decodes a ReplicatedMapDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedMapDef
         * @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): akkaserverless.ReplicatedMapDef;

        /**
         * Decodes a ReplicatedMapDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedMapDef
         * @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)): akkaserverless.ReplicatedMapDef;

        /**
         * Verifies a ReplicatedMapDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedMapDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedMapDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedMapDef;

        /**
         * Creates a plain object from a ReplicatedMapDef message. Also converts values to other types if specified.
         * @param message ReplicatedMapDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedMapDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedMapDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedCounterMapDef. */
    interface IReplicatedCounterMapDef {

        /** ReplicatedCounterMapDef key */
        key?: (string|null);
    }

    /** Represents a ReplicatedCounterMapDef. */
    class ReplicatedCounterMapDef implements IReplicatedCounterMapDef {

        /**
         * Constructs a new ReplicatedCounterMapDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedCounterMapDef);

        /** ReplicatedCounterMapDef key. */
        public key: string;

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

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

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

        /**
         * Decodes a ReplicatedCounterMapDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedCounterMapDef
         * @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): akkaserverless.ReplicatedCounterMapDef;

        /**
         * Decodes a ReplicatedCounterMapDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedCounterMapDef
         * @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)): akkaserverless.ReplicatedCounterMapDef;

        /**
         * Verifies a ReplicatedCounterMapDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedCounterMapDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedCounterMapDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedCounterMapDef;

        /**
         * Creates a plain object from a ReplicatedCounterMapDef message. Also converts values to other types if specified.
         * @param message ReplicatedCounterMapDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedCounterMapDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedCounterMapDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedRegisterMapDef. */
    interface IReplicatedRegisterMapDef {

        /** ReplicatedRegisterMapDef key */
        key?: (string|null);

        /** ReplicatedRegisterMapDef value */
        value?: (string|null);
    }

    /** Represents a ReplicatedRegisterMapDef. */
    class ReplicatedRegisterMapDef implements IReplicatedRegisterMapDef {

        /**
         * Constructs a new ReplicatedRegisterMapDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedRegisterMapDef);

        /** ReplicatedRegisterMapDef key. */
        public key: string;

        /** ReplicatedRegisterMapDef value. */
        public value: string;

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

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

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

        /**
         * Decodes a ReplicatedRegisterMapDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedRegisterMapDef
         * @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): akkaserverless.ReplicatedRegisterMapDef;

        /**
         * Decodes a ReplicatedRegisterMapDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedRegisterMapDef
         * @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)): akkaserverless.ReplicatedRegisterMapDef;

        /**
         * Verifies a ReplicatedRegisterMapDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedRegisterMapDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedRegisterMapDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedRegisterMapDef;

        /**
         * Creates a plain object from a ReplicatedRegisterMapDef message. Also converts values to other types if specified.
         * @param message ReplicatedRegisterMapDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedRegisterMapDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedRegisterMapDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedMultiMapDef. */
    interface IReplicatedMultiMapDef {

        /** ReplicatedMultiMapDef key */
        key?: (string|null);

        /** ReplicatedMultiMapDef value */
        value?: (string|null);
    }

    /** Represents a ReplicatedMultiMapDef. */
    class ReplicatedMultiMapDef implements IReplicatedMultiMapDef {

        /**
         * Constructs a new ReplicatedMultiMapDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedMultiMapDef);

        /** ReplicatedMultiMapDef key. */
        public key: string;

        /** ReplicatedMultiMapDef value. */
        public value: string;

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

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

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

        /**
         * Decodes a ReplicatedMultiMapDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedMultiMapDef
         * @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): akkaserverless.ReplicatedMultiMapDef;

        /**
         * Decodes a ReplicatedMultiMapDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedMultiMapDef
         * @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)): akkaserverless.ReplicatedMultiMapDef;

        /**
         * Verifies a ReplicatedMultiMapDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedMultiMapDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedMultiMapDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedMultiMapDef;

        /**
         * Creates a plain object from a ReplicatedMultiMapDef message. Also converts values to other types if specified.
         * @param message ReplicatedMultiMapDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedMultiMapDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedMultiMapDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedVoteDef. */
    interface IReplicatedVoteDef {
    }

    /** Represents a ReplicatedVoteDef. */
    class ReplicatedVoteDef implements IReplicatedVoteDef {

        /**
         * Constructs a new ReplicatedVoteDef.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedVoteDef);

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

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

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

        /**
         * Decodes a ReplicatedVoteDef message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedVoteDef
         * @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): akkaserverless.ReplicatedVoteDef;

        /**
         * Decodes a ReplicatedVoteDef message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedVoteDef
         * @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)): akkaserverless.ReplicatedVoteDef;

        /**
         * Verifies a ReplicatedVoteDef message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedVoteDef message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedVoteDef
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedVoteDef;

        /**
         * Creates a plain object from a ReplicatedVoteDef message. Also converts values to other types if specified.
         * @param message ReplicatedVoteDef
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedVoteDef, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedVoteDef to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of an EventSourcedEntity. */
    interface IEventSourcedEntity {

        /** EventSourcedEntity name */
        name?: (string|null);

        /** EventSourcedEntity entityType */
        entityType?: (string|null);

        /** EventSourcedEntity state */
        state?: (string|null);

        /** EventSourcedEntity events */
        events?: (string[]|null);
    }

    /** Represents an EventSourcedEntity. */
    class EventSourcedEntity implements IEventSourcedEntity {

        /**
         * Constructs a new EventSourcedEntity.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IEventSourcedEntity);

        /** EventSourcedEntity name. */
        public name: string;

        /** EventSourcedEntity entityType. */
        public entityType: string;

        /** EventSourcedEntity state. */
        public state: string;

        /** EventSourcedEntity events. */
        public events: string[];

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

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

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

        /**
         * Decodes an EventSourcedEntity message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns EventSourcedEntity
         * @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): akkaserverless.EventSourcedEntity;

        /**
         * Decodes an EventSourcedEntity message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns EventSourcedEntity
         * @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)): akkaserverless.EventSourcedEntity;

        /**
         * Verifies an EventSourcedEntity message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an EventSourcedEntity message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns EventSourcedEntity
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.EventSourcedEntity;

        /**
         * Creates a plain object from an EventSourcedEntity message. Also converts values to other types if specified.
         * @param message EventSourcedEntity
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.EventSourcedEntity, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this EventSourcedEntity to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ValueEntity. */
    interface IValueEntity {

        /** ValueEntity name */
        name?: (string|null);

        /** ValueEntity entityType */
        entityType?: (string|null);

        /** ValueEntity state */
        state?: (string|null);
    }

    /** Represents a ValueEntity. */
    class ValueEntity implements IValueEntity {

        /**
         * Constructs a new ValueEntity.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IValueEntity);

        /** ValueEntity name. */
        public name: string;

        /** ValueEntity entityType. */
        public entityType: string;

        /** ValueEntity state. */
        public state: string;

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

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

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

        /**
         * Decodes a ValueEntity message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ValueEntity
         * @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): akkaserverless.ValueEntity;

        /**
         * Decodes a ValueEntity message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ValueEntity
         * @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)): akkaserverless.ValueEntity;

        /**
         * Verifies a ValueEntity message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ValueEntity message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ValueEntity
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ValueEntity;

        /**
         * Creates a plain object from a ValueEntity message. Also converts values to other types if specified.
         * @param message ValueEntity
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ValueEntity, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ValueEntity to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedEntity. */
    interface IReplicatedEntity {

        /** ReplicatedEntity name */
        name?: (string|null);

        /** ReplicatedEntity entityType */
        entityType?: (string|null);

        /** ReplicatedEntity replicatedCounter */
        replicatedCounter?: (akkaserverless.IReplicatedCounter|null);

        /** ReplicatedEntity replicatedRegister */
        replicatedRegister?: (akkaserverless.IReplicatedRegister|null);

        /** ReplicatedEntity replicatedSet */
        replicatedSet?: (akkaserverless.IReplicatedSet|null);

        /** ReplicatedEntity replicatedMap */
        replicatedMap?: (akkaserverless.IReplicatedMap|null);

        /** ReplicatedEntity replicatedCounterMap */
        replicatedCounterMap?: (akkaserverless.IReplicatedCounterMap|null);

        /** ReplicatedEntity replicatedRegisterMap */
        replicatedRegisterMap?: (akkaserverless.IReplicatedRegisterMap|null);

        /** ReplicatedEntity replicatedMultiMap */
        replicatedMultiMap?: (akkaserverless.IReplicatedMultiMap|null);

        /** ReplicatedEntity replicatedVote */
        replicatedVote?: (akkaserverless.IReplicatedVote|null);
    }

    /** Represents a ReplicatedEntity. */
    class ReplicatedEntity implements IReplicatedEntity {

        /**
         * Constructs a new ReplicatedEntity.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedEntity);

        /** ReplicatedEntity name. */
        public name: string;

        /** ReplicatedEntity entityType. */
        public entityType: string;

        /** ReplicatedEntity replicatedCounter. */
        public replicatedCounter?: (akkaserverless.IReplicatedCounter|null);

        /** ReplicatedEntity replicatedRegister. */
        public replicatedRegister?: (akkaserverless.IReplicatedRegister|null);

        /** ReplicatedEntity replicatedSet. */
        public replicatedSet?: (akkaserverless.IReplicatedSet|null);

        /** ReplicatedEntity replicatedMap. */
        public replicatedMap?: (akkaserverless.IReplicatedMap|null);

        /** ReplicatedEntity replicatedCounterMap. */
        public replicatedCounterMap?: (akkaserverless.IReplicatedCounterMap|null);

        /** ReplicatedEntity replicatedRegisterMap. */
        public replicatedRegisterMap?: (akkaserverless.IReplicatedRegisterMap|null);

        /** ReplicatedEntity replicatedMultiMap. */
        public replicatedMultiMap?: (akkaserverless.IReplicatedMultiMap|null);

        /** ReplicatedEntity replicatedVote. */
        public replicatedVote?: (akkaserverless.IReplicatedVote|null);

        /** ReplicatedEntity replicatedData. */
        public replicatedData?: ("replicatedCounter"|"replicatedRegister"|"replicatedSet"|"replicatedMap"|"replicatedCounterMap"|"replicatedRegisterMap"|"replicatedMultiMap"|"replicatedVote");

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

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

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

        /**
         * Decodes a ReplicatedEntity message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedEntity
         * @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): akkaserverless.ReplicatedEntity;

        /**
         * Decodes a ReplicatedEntity message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedEntity
         * @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)): akkaserverless.ReplicatedEntity;

        /**
         * Verifies a ReplicatedEntity message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedEntity message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedEntity
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedEntity;

        /**
         * Creates a plain object from a ReplicatedEntity message. Also converts values to other types if specified.
         * @param message ReplicatedEntity
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedEntity, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedEntity to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedCounter. */
    interface IReplicatedCounter {
    }

    /** Represents a ReplicatedCounter. */
    class ReplicatedCounter implements IReplicatedCounter {

        /**
         * Constructs a new ReplicatedCounter.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedCounter);

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

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

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

        /**
         * Decodes a ReplicatedCounter message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedCounter
         * @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): akkaserverless.ReplicatedCounter;

        /**
         * Decodes a ReplicatedCounter message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedCounter
         * @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)): akkaserverless.ReplicatedCounter;

        /**
         * Verifies a ReplicatedCounter message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedCounter message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedCounter
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedCounter;

        /**
         * Creates a plain object from a ReplicatedCounter message. Also converts values to other types if specified.
         * @param message ReplicatedCounter
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedCounter, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedCounter to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedRegister. */
    interface IReplicatedRegister {

        /** ReplicatedRegister value */
        value?: (string|null);
    }

    /** Represents a ReplicatedRegister. */
    class ReplicatedRegister implements IReplicatedRegister {

        /**
         * Constructs a new ReplicatedRegister.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedRegister);

        /** ReplicatedRegister value. */
        public value: string;

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

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

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

        /**
         * Decodes a ReplicatedRegister message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedRegister
         * @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): akkaserverless.ReplicatedRegister;

        /**
         * Decodes a ReplicatedRegister message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedRegister
         * @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)): akkaserverless.ReplicatedRegister;

        /**
         * Verifies a ReplicatedRegister message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedRegister message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedRegister
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedRegister;

        /**
         * Creates a plain object from a ReplicatedRegister message. Also converts values to other types if specified.
         * @param message ReplicatedRegister
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedRegister, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedRegister to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedSet. */
    interface IReplicatedSet {

        /** ReplicatedSet element */
        element?: (string|null);
    }

    /** Represents a ReplicatedSet. */
    class ReplicatedSet implements IReplicatedSet {

        /**
         * Constructs a new ReplicatedSet.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedSet);

        /** ReplicatedSet element. */
        public element: string;

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

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

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

        /**
         * Decodes a ReplicatedSet message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedSet
         * @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): akkaserverless.ReplicatedSet;

        /**
         * Decodes a ReplicatedSet message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedSet
         * @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)): akkaserverless.ReplicatedSet;

        /**
         * Verifies a ReplicatedSet message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedSet message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedSet
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedSet;

        /**
         * Creates a plain object from a ReplicatedSet message. Also converts values to other types if specified.
         * @param message ReplicatedSet
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedSet to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedMap. */
    interface IReplicatedMap {

        /** ReplicatedMap key */
        key?: (string|null);
    }

    /** Represents a ReplicatedMap. */
    class ReplicatedMap implements IReplicatedMap {

        /**
         * Constructs a new ReplicatedMap.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedMap);

        /** ReplicatedMap key. */
        public key: string;

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

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

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

        /**
         * Decodes a ReplicatedMap message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedMap
         * @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): akkaserverless.ReplicatedMap;

        /**
         * Decodes a ReplicatedMap message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedMap
         * @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)): akkaserverless.ReplicatedMap;

        /**
         * Verifies a ReplicatedMap message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedMap message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedMap
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedMap;

        /**
         * Creates a plain object from a ReplicatedMap message. Also converts values to other types if specified.
         * @param message ReplicatedMap
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedMap, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedMap to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedCounterMap. */
    interface IReplicatedCounterMap {

        /** ReplicatedCounterMap key */
        key?: (string|null);
    }

    /** Represents a ReplicatedCounterMap. */
    class ReplicatedCounterMap implements IReplicatedCounterMap {

        /**
         * Constructs a new ReplicatedCounterMap.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedCounterMap);

        /** ReplicatedCounterMap key. */
        public key: string;

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

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

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

        /**
         * Decodes a ReplicatedCounterMap message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedCounterMap
         * @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): akkaserverless.ReplicatedCounterMap;

        /**
         * Decodes a ReplicatedCounterMap message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedCounterMap
         * @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)): akkaserverless.ReplicatedCounterMap;

        /**
         * Verifies a ReplicatedCounterMap message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedCounterMap message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedCounterMap
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedCounterMap;

        /**
         * Creates a plain object from a ReplicatedCounterMap message. Also converts values to other types if specified.
         * @param message ReplicatedCounterMap
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedCounterMap, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedCounterMap to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedRegisterMap. */
    interface IReplicatedRegisterMap {

        /** ReplicatedRegisterMap key */
        key?: (string|null);

        /** ReplicatedRegisterMap value */
        value?: (string|null);
    }

    /** Represents a ReplicatedRegisterMap. */
    class ReplicatedRegisterMap implements IReplicatedRegisterMap {

        /**
         * Constructs a new ReplicatedRegisterMap.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedRegisterMap);

        /** ReplicatedRegisterMap key. */
        public key: string;

        /** ReplicatedRegisterMap value. */
        public value: string;

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

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

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

        /**
         * Decodes a ReplicatedRegisterMap message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedRegisterMap
         * @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): akkaserverless.ReplicatedRegisterMap;

        /**
         * Decodes a ReplicatedRegisterMap message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedRegisterMap
         * @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)): akkaserverless.ReplicatedRegisterMap;

        /**
         * Verifies a ReplicatedRegisterMap message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedRegisterMap message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedRegisterMap
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedRegisterMap;

        /**
         * Creates a plain object from a ReplicatedRegisterMap message. Also converts values to other types if specified.
         * @param message ReplicatedRegisterMap
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedRegisterMap, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedRegisterMap to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedMultiMap. */
    interface IReplicatedMultiMap {

        /** ReplicatedMultiMap key */
        key?: (string|null);

        /** ReplicatedMultiMap value */
        value?: (string|null);
    }

    /** Represents a ReplicatedMultiMap. */
    class ReplicatedMultiMap implements IReplicatedMultiMap {

        /**
         * Constructs a new ReplicatedMultiMap.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedMultiMap);

        /** ReplicatedMultiMap key. */
        public key: string;

        /** ReplicatedMultiMap value. */
        public value: string;

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

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

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

        /**
         * Decodes a ReplicatedMultiMap message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedMultiMap
         * @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): akkaserverless.ReplicatedMultiMap;

        /**
         * Decodes a ReplicatedMultiMap message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedMultiMap
         * @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)): akkaserverless.ReplicatedMultiMap;

        /**
         * Verifies a ReplicatedMultiMap message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedMultiMap message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedMultiMap
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedMultiMap;

        /**
         * Creates a plain object from a ReplicatedMultiMap message. Also converts values to other types if specified.
         * @param message ReplicatedMultiMap
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedMultiMap, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedMultiMap to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ReplicatedVote. */
    interface IReplicatedVote {
    }

    /** Represents a ReplicatedVote. */
    class ReplicatedVote implements IReplicatedVote {

        /**
         * Constructs a new ReplicatedVote.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IReplicatedVote);

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

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

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

        /**
         * Decodes a ReplicatedVote message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReplicatedVote
         * @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): akkaserverless.ReplicatedVote;

        /**
         * Decodes a ReplicatedVote message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReplicatedVote
         * @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)): akkaserverless.ReplicatedVote;

        /**
         * Verifies a ReplicatedVote message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReplicatedVote message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReplicatedVote
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.ReplicatedVote;

        /**
         * Creates a plain object from a ReplicatedVote message. Also converts values to other types if specified.
         * @param message ReplicatedVote
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.ReplicatedVote, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReplicatedVote to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of an EntityMethodOptions. */
    interface IEntityMethodOptions {

        /** EntityMethodOptions keyGenerator */
        keyGenerator?: (akkaserverless.EntityMethodOptions.Generator|null);
    }

    /** Represents an EntityMethodOptions. */
    class EntityMethodOptions implements IEntityMethodOptions {

        /**
         * Constructs a new EntityMethodOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IEntityMethodOptions);

        /** EntityMethodOptions keyGenerator. */
        public keyGenerator: akkaserverless.EntityMethodOptions.Generator;

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

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

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

        /**
         * Decodes an EntityMethodOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns EntityMethodOptions
         * @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): akkaserverless.EntityMethodOptions;

        /**
         * Decodes an EntityMethodOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns EntityMethodOptions
         * @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)): akkaserverless.EntityMethodOptions;

        /**
         * Verifies an EntityMethodOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an EntityMethodOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns EntityMethodOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.EntityMethodOptions;

        /**
         * Creates a plain object from an EntityMethodOptions message. Also converts values to other types if specified.
         * @param message EntityMethodOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.EntityMethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this EntityMethodOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    namespace EntityMethodOptions {

        /** Generator enum. */
        enum Generator {
            UNSPECIFIED = 0,
            VERSION_4_UUID = 1
        }
    }

    /** Properties of an Eventing. */
    interface IEventing {

        /** Eventing in */
        "in"?: (akkaserverless.IEventSource|null);

        /** Eventing out */
        out?: (akkaserverless.IEventDestination|null);
    }

    /** Represents an Eventing. */
    class Eventing implements IEventing {

        /**
         * Constructs a new Eventing.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IEventing);

        /** Eventing in. */
        public in?: (akkaserverless.IEventSource|null);

        /** Eventing out. */
        public out?: (akkaserverless.IEventDestination|null);

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

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

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

        /**
         * Decodes an Eventing message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Eventing
         * @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): akkaserverless.Eventing;

        /**
         * Decodes an Eventing message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Eventing
         * @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)): akkaserverless.Eventing;

        /**
         * Verifies an Eventing message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an Eventing message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns Eventing
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.Eventing;

        /**
         * Creates a plain object from an Eventing message. Also converts values to other types if specified.
         * @param message Eventing
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.Eventing, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this Eventing to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of an EventSource. */
    interface IEventSource {

        /** EventSource consumerGroup */
        consumerGroup?: (string|null);

        /** EventSource topic */
        topic?: (string|null);

        /** EventSource eventSourcedEntity */
        eventSourcedEntity?: (string|null);

        /** EventSource valueEntity */
        valueEntity?: (string|null);
    }

    /** Represents an EventSource. */
    class EventSource implements IEventSource {

        /**
         * Constructs a new EventSource.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IEventSource);

        /** EventSource consumerGroup. */
        public consumerGroup: string;

        /** EventSource topic. */
        public topic?: (string|null);

        /** EventSource eventSourcedEntity. */
        public eventSourcedEntity?: (string|null);

        /** EventSource valueEntity. */
        public valueEntity?: (string|null);

        /** EventSource source. */
        public source?: ("topic"|"eventSourcedEntity"|"valueEntity");

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

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

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

        /**
         * Decodes an EventSource message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns EventSource
         * @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): akkaserverless.EventSource;

        /**
         * Decodes an EventSource message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns EventSource
         * @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)): akkaserverless.EventSource;

        /**
         * Verifies an EventSource message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an EventSource message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns EventSource
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.EventSource;

        /**
         * Creates a plain object from an EventSource message. Also converts values to other types if specified.
         * @param message EventSource
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.EventSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this EventSource to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of an EventDestination. */
    interface IEventDestination {

        /** EventDestination topic */
        topic?: (string|null);
    }

    /** Represents an EventDestination. */
    class EventDestination implements IEventDestination {

        /**
         * Constructs a new EventDestination.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IEventDestination);

        /** EventDestination topic. */
        public topic?: (string|null);

        /** EventDestination destination. */
        public destination?: "topic";

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

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

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

        /**
         * Decodes an EventDestination message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns EventDestination
         * @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): akkaserverless.EventDestination;

        /**
         * Decodes an EventDestination message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns EventDestination
         * @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)): akkaserverless.EventDestination;

        /**
         * Verifies an EventDestination message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an EventDestination message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns EventDestination
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.EventDestination;

        /**
         * Creates a plain object from an EventDestination message. Also converts values to other types if specified.
         * @param message EventDestination
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.EventDestination, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this EventDestination to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a JwtFieldOptions. */
    interface IJwtFieldOptions {

        /** JwtFieldOptions claim */
        claim?: (akkaserverless.JwtFieldOptions.JwtClaimInclude|null);

        /** JwtFieldOptions name */
        name?: (string|null);

        /** JwtFieldOptions token */
        token?: (boolean|null);

        /** JwtFieldOptions includeParentClaims */
        includeParentClaims?: (boolean|null);

        /** JwtFieldOptions includeBearerTokenClaim */
        includeBearerTokenClaim?: (string[]|null);

        /** JwtFieldOptions issuer */
        issuer?: (string[]|null);

        /** JwtFieldOptions expiresSeconds */
        expiresSeconds?: (number|Long|null);
    }

    /** Represents a JwtFieldOptions. */
    class JwtFieldOptions implements IJwtFieldOptions {

        /**
         * Constructs a new JwtFieldOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IJwtFieldOptions);

        /** JwtFieldOptions claim. */
        public claim: akkaserverless.JwtFieldOptions.JwtClaimInclude;

        /** JwtFieldOptions name. */
        public name: string;

        /** JwtFieldOptions token. */
        public token: boolean;

        /** JwtFieldOptions includeParentClaims. */
        public includeParentClaims: boolean;

        /** JwtFieldOptions includeBearerTokenClaim. */
        public includeBearerTokenClaim: string[];

        /** JwtFieldOptions issuer. */
        public issuer: string[];

        /** JwtFieldOptions expiresSeconds. */
        public expiresSeconds: (number|Long);

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

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

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

        /**
         * Decodes a JwtFieldOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns JwtFieldOptions
         * @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): akkaserverless.JwtFieldOptions;

        /**
         * Decodes a JwtFieldOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns JwtFieldOptions
         * @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)): akkaserverless.JwtFieldOptions;

        /**
         * Verifies a JwtFieldOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a JwtFieldOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns JwtFieldOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.JwtFieldOptions;

        /**
         * Creates a plain object from a JwtFieldOptions message. Also converts values to other types if specified.
         * @param message JwtFieldOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.JwtFieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this JwtFieldOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    namespace JwtFieldOptions {

        /** JwtClaimInclude enum. */
        enum JwtClaimInclude {
            UNSPECIFIED = 0,
            INCLUDE = 1,
            EXTRACT = 2,
            DESCEND = 3,
            NEST = 4,
            RAW = 5
        }
    }

    /** Properties of a JwtMessageOptions. */
    interface IJwtMessageOptions {

        /** JwtMessageOptions validateBearerToken */
        validateBearerToken?: (boolean|null);
    }

    /** Represents a JwtMessageOptions. */
    class JwtMessageOptions implements IJwtMessageOptions {

        /**
         * Constructs a new JwtMessageOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IJwtMessageOptions);

        /** JwtMessageOptions validateBearerToken. */
        public validateBearerToken: boolean;

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

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

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

        /**
         * Decodes a JwtMessageOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns JwtMessageOptions
         * @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): akkaserverless.JwtMessageOptions;

        /**
         * Decodes a JwtMessageOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns JwtMessageOptions
         * @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)): akkaserverless.JwtMessageOptions;

        /**
         * Verifies a JwtMessageOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a JwtMessageOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns JwtMessageOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.JwtMessageOptions;

        /**
         * Creates a plain object from a JwtMessageOptions message. Also converts values to other types if specified.
         * @param message JwtMessageOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.JwtMessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this JwtMessageOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a JwtMethodOptions. */
    interface IJwtMethodOptions {

        /** JwtMethodOptions validate */
        validate?: (akkaserverless.JwtMethodOptions.JwtMethodMode[]|null);

        /** JwtMethodOptions sign */
        sign?: (akkaserverless.JwtMethodOptions.JwtMethodMode[]|null);

        /** JwtMethodOptions bearerTokenIssuer */
        bearerTokenIssuer?: (string[]|null);
    }

    /** Represents a JwtMethodOptions. */
    class JwtMethodOptions implements IJwtMethodOptions {

        /**
         * Constructs a new JwtMethodOptions.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IJwtMethodOptions);

        /** JwtMethodOptions validate. */
        public validate: akkaserverless.JwtMethodOptions.JwtMethodMode[];

        /** JwtMethodOptions sign. */
        public sign: akkaserverless.JwtMethodOptions.JwtMethodMode[];

        /** JwtMethodOptions bearerTokenIssuer. */
        public bearerTokenIssuer: string[];

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

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

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

        /**
         * Decodes a JwtMethodOptions message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns JwtMethodOptions
         * @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): akkaserverless.JwtMethodOptions;

        /**
         * Decodes a JwtMethodOptions message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns JwtMethodOptions
         * @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)): akkaserverless.JwtMethodOptions;

        /**
         * Verifies a JwtMethodOptions message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a JwtMethodOptions message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns JwtMethodOptions
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.JwtMethodOptions;

        /**
         * Creates a plain object from a JwtMethodOptions message. Also converts values to other types if specified.
         * @param message JwtMethodOptions
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.JwtMethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this JwtMethodOptions to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    namespace JwtMethodOptions {

        /** JwtMethodMode enum. */
        enum JwtMethodMode {
            UNSPECIFIED = 0,
            BEARER_TOKEN = 1,
            MESSAGE = 2
        }
    }

    /** Properties of a View. */
    interface IView {

        /** View update */
        update?: (akkaserverless.View.IUpdate|null);

        /** View query */
        query?: (akkaserverless.View.IQuery|null);
    }

    /** Represents a View. */
    class View implements IView {

        /**
         * Constructs a new View.
         * @param [properties] Properties to set
         */
        constructor(properties?: akkaserverless.IView);

        /** View update. */
        public update?: (akkaserverless.View.IUpdate|null);

        /** View query. */
        public query?: (akkaserverless.View.IQuery|null);

        /** View updateOrQuery. */
        public updateOrQuery?: ("update"|"query");

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

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

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

        /**
         * Decodes a View message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns View
         * @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): akkaserverless.View;

        /**
         * Decodes a View message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns View
         * @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)): akkaserverless.View;

        /**
         * Verifies a View message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a View message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns View
         */
        public static fromObject(object: { [k: string]: any }): akkaserverless.View;

        /**
         * Creates a plain object from a View message. Also converts values to other types if specified.
         * @param message View
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: akkaserverless.View, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this View to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    namespace View {

        /** Properties of an Update. */
        interface IUpdate {

            /** Update table */
            table?: (string|null);

            /** Update transformUpdates */
            transformUpdates?: (boolean|null);
        }

        /** Represents an Update. */
        class Update implements IUpdate {

            /**
             * Constructs a new Update.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.View.IUpdate);

            /** Update table. */
            public table: string;

            /** Update transformUpdates. */
            public transformUpdates: boolean;

            /**
             * Creates a new Update instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Update instance
             */
            public static create(properties?: akkaserverless.View.IUpdate): akkaserverless.View.Update;

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

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

            /**
             * Decodes an Update message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Update
             * @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): akkaserverless.View.Update;

            /**
             * Decodes an Update message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Update
             * @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)): akkaserverless.View.Update;

            /**
             * Verifies an Update message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Update message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Update
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.View.Update;

            /**
             * Creates a plain object from an Update message. Also converts values to other types if specified.
             * @param message Update
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.View.Update, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Update to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Query. */
        interface IQuery {

            /** Query query */
            query?: (string|null);

            /** Query transformResults */
            transformResults?: (boolean|null);
        }

        /** Represents a Query. */
        class Query implements IQuery {

            /**
             * Constructs a new Query.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.View.IQuery);

            /** Query query. */
            public query: string;

            /** Query transformResults. */
            public transformResults: boolean;

            /**
             * Creates a new Query instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Query instance
             */
            public static create(properties?: akkaserverless.View.IQuery): akkaserverless.View.Query;

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

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

            /**
             * Decodes a Query message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Query
             * @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): akkaserverless.View.Query;

            /**
             * Decodes a Query message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Query
             * @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)): akkaserverless.View.Query;

            /**
             * Verifies a Query message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Query message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Query
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.View.Query;

            /**
             * Creates a plain object from a Query message. Also converts values to other types if specified.
             * @param message Query
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.View.Query, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Query to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }

    /** Namespace protocol. */
    namespace protocol {

        /** Properties of a Spec. */
        interface ISpec {

            /** Spec proto */
            proto?: (Uint8Array|null);

            /** Spec components */
            components?: (akkaserverless.protocol.IComponent[]|null);

            /** Spec serviceInfo */
            serviceInfo?: (akkaserverless.protocol.IServiceInfo|null);
        }

        /** Represents a Spec. */
        class Spec implements ISpec {

            /**
             * Constructs a new Spec.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.ISpec);

            /** Spec proto. */
            public proto: Uint8Array;

            /** Spec components. */
            public components: akkaserverless.protocol.IComponent[];

            /** Spec serviceInfo. */
            public serviceInfo?: (akkaserverless.protocol.IServiceInfo|null);

            /**
             * Creates a new Spec instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Spec instance
             */
            public static create(properties?: akkaserverless.protocol.ISpec): akkaserverless.protocol.Spec;

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

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

            /**
             * Decodes a Spec message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Spec
             * @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): akkaserverless.protocol.Spec;

            /**
             * Decodes a Spec message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Spec
             * @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)): akkaserverless.protocol.Spec;

            /**
             * Verifies a Spec message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Spec message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Spec
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.Spec;

            /**
             * Creates a plain object from a Spec message. Also converts values to other types if specified.
             * @param message Spec
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.Spec, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Spec to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ServiceInfo. */
        interface IServiceInfo {

            /** ServiceInfo serviceName */
            serviceName?: (string|null);

            /** ServiceInfo serviceVersion */
            serviceVersion?: (string|null);

            /** ServiceInfo serviceRuntime */
            serviceRuntime?: (string|null);

            /** ServiceInfo supportLibraryName */
            supportLibraryName?: (string|null);

            /** ServiceInfo supportLibraryVersion */
            supportLibraryVersion?: (string|null);

            /** ServiceInfo protocolMajorVersion */
            protocolMajorVersion?: (number|null);

            /** ServiceInfo protocolMinorVersion */
            protocolMinorVersion?: (number|null);
        }

        /** Represents a ServiceInfo. */
        class ServiceInfo implements IServiceInfo {

            /**
             * Constructs a new ServiceInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.IServiceInfo);

            /** ServiceInfo serviceName. */
            public serviceName: string;

            /** ServiceInfo serviceVersion. */
            public serviceVersion: string;

            /** ServiceInfo serviceRuntime. */
            public serviceRuntime: string;

            /** ServiceInfo supportLibraryName. */
            public supportLibraryName: string;

            /** ServiceInfo supportLibraryVersion. */
            public supportLibraryVersion: string;

            /** ServiceInfo protocolMajorVersion. */
            public protocolMajorVersion: number;

            /** ServiceInfo protocolMinorVersion. */
            public protocolMinorVersion: number;

            /**
             * Creates a new ServiceInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceInfo instance
             */
            public static create(properties?: akkaserverless.protocol.IServiceInfo): akkaserverless.protocol.ServiceInfo;

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

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

            /**
             * Decodes a ServiceInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceInfo
             * @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): akkaserverless.protocol.ServiceInfo;

            /**
             * Decodes a ServiceInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceInfo
             * @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)): akkaserverless.protocol.ServiceInfo;

            /**
             * Verifies a ServiceInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceInfo
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.ServiceInfo;

            /**
             * Creates a plain object from a ServiceInfo message. Also converts values to other types if specified.
             * @param message ServiceInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.ServiceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Component. */
        interface IComponent {

            /** Component componentType */
            componentType?: (string|null);

            /** Component serviceName */
            serviceName?: (string|null);

            /** Component entity */
            entity?: (akkaserverless.protocol.IEntitySettings|null);

            /** Component component */
            component?: (akkaserverless.protocol.IGenericComponentSettings|null);
        }

        /** Represents a Component. */
        class Component implements IComponent {

            /**
             * Constructs a new Component.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.IComponent);

            /** Component componentType. */
            public componentType: string;

            /** Component serviceName. */
            public serviceName: string;

            /** Component entity. */
            public entity?: (akkaserverless.protocol.IEntitySettings|null);

            /** Component component. */
            public component?: (akkaserverless.protocol.IGenericComponentSettings|null);

            /** Component componentSettings. */
            public componentSettings?: ("entity"|"component");

            /**
             * Creates a new Component instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Component instance
             */
            public static create(properties?: akkaserverless.protocol.IComponent): akkaserverless.protocol.Component;

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

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

            /**
             * Decodes a Component message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Component
             * @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): akkaserverless.protocol.Component;

            /**
             * Decodes a Component message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Component
             * @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)): akkaserverless.protocol.Component;

            /**
             * Verifies a Component message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Component message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Component
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.Component;

            /**
             * Creates a plain object from a Component message. Also converts values to other types if specified.
             * @param message Component
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.Component, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Component to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a GenericComponentSettings. */
        interface IGenericComponentSettings {

            /** GenericComponentSettings forwardHeaders */
            forwardHeaders?: (string[]|null);
        }

        /** Represents a GenericComponentSettings. */
        class GenericComponentSettings implements IGenericComponentSettings {

            /**
             * Constructs a new GenericComponentSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.IGenericComponentSettings);

            /** GenericComponentSettings forwardHeaders. */
            public forwardHeaders: string[];

            /**
             * Creates a new GenericComponentSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GenericComponentSettings instance
             */
            public static create(properties?: akkaserverless.protocol.IGenericComponentSettings): akkaserverless.protocol.GenericComponentSettings;

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

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

            /**
             * Decodes a GenericComponentSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GenericComponentSettings
             * @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): akkaserverless.protocol.GenericComponentSettings;

            /**
             * Decodes a GenericComponentSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GenericComponentSettings
             * @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)): akkaserverless.protocol.GenericComponentSettings;

            /**
             * Verifies a GenericComponentSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GenericComponentSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GenericComponentSettings
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.GenericComponentSettings;

            /**
             * Creates a plain object from a GenericComponentSettings message. Also converts values to other types if specified.
             * @param message GenericComponentSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.GenericComponentSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GenericComponentSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an EntitySettings. */
        interface IEntitySettings {

            /** EntitySettings entityType */
            entityType?: (string|null);

            /** EntitySettings passivationStrategy */
            passivationStrategy?: (akkaserverless.protocol.IPassivationStrategy|null);

            /** EntitySettings forwardHeaders */
            forwardHeaders?: (string[]|null);

            /** EntitySettings replicatedEntity */
            replicatedEntity?: (akkaserverless.protocol.IReplicatedEntitySettings|null);
        }

        /** Represents an EntitySettings. */
        class EntitySettings implements IEntitySettings {

            /**
             * Constructs a new EntitySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.IEntitySettings);

            /** EntitySettings entityType. */
            public entityType: string;

            /** EntitySettings passivationStrategy. */
            public passivationStrategy?: (akkaserverless.protocol.IPassivationStrategy|null);

            /** EntitySettings forwardHeaders. */
            public forwardHeaders: string[];

            /** EntitySettings replicatedEntity. */
            public replicatedEntity?: (akkaserverless.protocol.IReplicatedEntitySettings|null);

            /** EntitySettings specificSettings. */
            public specificSettings?: "replicatedEntity";

            /**
             * Creates a new EntitySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EntitySettings instance
             */
            public static create(properties?: akkaserverless.protocol.IEntitySettings): akkaserverless.protocol.EntitySettings;

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

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

            /**
             * Decodes an EntitySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EntitySettings
             * @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): akkaserverless.protocol.EntitySettings;

            /**
             * Decodes an EntitySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EntitySettings
             * @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)): akkaserverless.protocol.EntitySettings;

            /**
             * Verifies an EntitySettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EntitySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EntitySettings
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.EntitySettings;

            /**
             * Creates a plain object from an EntitySettings message. Also converts values to other types if specified.
             * @param message EntitySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.EntitySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EntitySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PassivationStrategy. */
        interface IPassivationStrategy {

            /** PassivationStrategy timeout */
            timeout?: (akkaserverless.protocol.ITimeoutPassivationStrategy|null);
        }

        /** Represents a PassivationStrategy. */
        class PassivationStrategy implements IPassivationStrategy {

            /**
             * Constructs a new PassivationStrategy.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.IPassivationStrategy);

            /** PassivationStrategy timeout. */
            public timeout?: (akkaserverless.protocol.ITimeoutPassivationStrategy|null);

            /** PassivationStrategy strategy. */
            public strategy?: "timeout";

            /**
             * Creates a new PassivationStrategy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PassivationStrategy instance
             */
            public static create(properties?: akkaserverless.protocol.IPassivationStrategy): akkaserverless.protocol.PassivationStrategy;

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

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

            /**
             * Decodes a PassivationStrategy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PassivationStrategy
             * @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): akkaserverless.protocol.PassivationStrategy;

            /**
             * Decodes a PassivationStrategy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PassivationStrategy
             * @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)): akkaserverless.protocol.PassivationStrategy;

            /**
             * Verifies a PassivationStrategy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PassivationStrategy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PassivationStrategy
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.PassivationStrategy;

            /**
             * Creates a plain object from a PassivationStrategy message. Also converts values to other types if specified.
             * @param message PassivationStrategy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.PassivationStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PassivationStrategy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TimeoutPassivationStrategy. */
        interface ITimeoutPassivationStrategy {

            /** TimeoutPassivationStrategy timeout */
            timeout?: (number|Long|null);
        }

        /** Represents a TimeoutPassivationStrategy. */
        class TimeoutPassivationStrategy implements ITimeoutPassivationStrategy {

            /**
             * Constructs a new TimeoutPassivationStrategy.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.ITimeoutPassivationStrategy);

            /** TimeoutPassivationStrategy timeout. */
            public timeout: (number|Long);

            /**
             * Creates a new TimeoutPassivationStrategy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TimeoutPassivationStrategy instance
             */
            public static create(properties?: akkaserverless.protocol.ITimeoutPassivationStrategy): akkaserverless.protocol.TimeoutPassivationStrategy;

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

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

            /**
             * Decodes a TimeoutPassivationStrategy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TimeoutPassivationStrategy
             * @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): akkaserverless.protocol.TimeoutPassivationStrategy;

            /**
             * Decodes a TimeoutPassivationStrategy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TimeoutPassivationStrategy
             * @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)): akkaserverless.protocol.TimeoutPassivationStrategy;

            /**
             * Verifies a TimeoutPassivationStrategy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TimeoutPassivationStrategy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TimeoutPassivationStrategy
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.TimeoutPassivationStrategy;

            /**
             * Creates a plain object from a TimeoutPassivationStrategy message. Also converts values to other types if specified.
             * @param message TimeoutPassivationStrategy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.TimeoutPassivationStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TimeoutPassivationStrategy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReplicatedEntitySettings. */
        interface IReplicatedEntitySettings {

            /** ReplicatedEntitySettings writeConsistency */
            writeConsistency?: (akkaserverless.protocol.ReplicatedWriteConsistency|null);
        }

        /** Represents a ReplicatedEntitySettings. */
        class ReplicatedEntitySettings implements IReplicatedEntitySettings {

            /**
             * Constructs a new ReplicatedEntitySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.IReplicatedEntitySettings);

            /** ReplicatedEntitySettings writeConsistency. */
            public writeConsistency: akkaserverless.protocol.ReplicatedWriteConsistency;

            /**
             * Creates a new ReplicatedEntitySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReplicatedEntitySettings instance
             */
            public static create(properties?: akkaserverless.protocol.IReplicatedEntitySettings): akkaserverless.protocol.ReplicatedEntitySettings;

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

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

            /**
             * Decodes a ReplicatedEntitySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReplicatedEntitySettings
             * @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): akkaserverless.protocol.ReplicatedEntitySettings;

            /**
             * Decodes a ReplicatedEntitySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReplicatedEntitySettings
             * @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)): akkaserverless.protocol.ReplicatedEntitySettings;

            /**
             * Verifies a ReplicatedEntitySettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReplicatedEntitySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReplicatedEntitySettings
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.ReplicatedEntitySettings;

            /**
             * Creates a plain object from a ReplicatedEntitySettings message. Also converts values to other types if specified.
             * @param message ReplicatedEntitySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.ReplicatedEntitySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReplicatedEntitySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** ReplicatedWriteConsistency enum. */
        enum ReplicatedWriteConsistency {
            REPLICATED_WRITE_CONSISTENCY_LOCAL_UNSPECIFIED = 0,
            REPLICATED_WRITE_CONSISTENCY_MAJORITY = 1,
            REPLICATED_WRITE_CONSISTENCY_ALL = 2
        }

        /** Properties of a UserFunctionError. */
        interface IUserFunctionError {

            /** UserFunctionError message */
            message?: (string|null);

            /** UserFunctionError code */
            code?: (string|null);

            /** UserFunctionError detail */
            detail?: (string|null);

            /** UserFunctionError sourceLocations */
            sourceLocations?: (akkaserverless.protocol.UserFunctionError.ISourceLocation[]|null);
        }

        /** Represents a UserFunctionError. */
        class UserFunctionError implements IUserFunctionError {

            /**
             * Constructs a new UserFunctionError.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.IUserFunctionError);

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

            /** UserFunctionError code. */
            public code: string;

            /** UserFunctionError detail. */
            public detail: string;

            /** UserFunctionError sourceLocations. */
            public sourceLocations: akkaserverless.protocol.UserFunctionError.ISourceLocation[];

            /**
             * Creates a new UserFunctionError instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UserFunctionError instance
             */
            public static create(properties?: akkaserverless.protocol.IUserFunctionError): akkaserverless.protocol.UserFunctionError;

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

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

            /**
             * Decodes a UserFunctionError message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UserFunctionError
             * @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): akkaserverless.protocol.UserFunctionError;

            /**
             * Decodes a UserFunctionError message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UserFunctionError
             * @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)): akkaserverless.protocol.UserFunctionError;

            /**
             * Verifies a UserFunctionError message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a UserFunctionError message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UserFunctionError
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.UserFunctionError;

            /**
             * Creates a plain object from a UserFunctionError message. Also converts values to other types if specified.
             * @param message UserFunctionError
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.UserFunctionError, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UserFunctionError to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace UserFunctionError {

            /** Properties of a SourceLocation. */
            interface ISourceLocation {

                /** SourceLocation fileName */
                fileName?: (string|null);

                /** SourceLocation startLine */
                startLine?: (number|null);

                /** SourceLocation startCol */
                startCol?: (number|null);

                /** SourceLocation endLine */
                endLine?: (number|null);

                /** SourceLocation endCol */
                endCol?: (number|null);

                /** SourceLocation protoPath */
                protoPath?: (number[]|null);
            }

            /** Represents a SourceLocation. */
            class SourceLocation implements ISourceLocation {

                /**
                 * Constructs a new SourceLocation.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.protocol.UserFunctionError.ISourceLocation);

                /** SourceLocation fileName. */
                public fileName: string;

                /** SourceLocation startLine. */
                public startLine: number;

                /** SourceLocation startCol. */
                public startCol: number;

                /** SourceLocation endLine. */
                public endLine: number;

                /** SourceLocation endCol. */
                public endCol: number;

                /** SourceLocation protoPath. */
                public protoPath: number[];

                /**
                 * Creates a new SourceLocation instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SourceLocation instance
                 */
                public static create(properties?: akkaserverless.protocol.UserFunctionError.ISourceLocation): akkaserverless.protocol.UserFunctionError.SourceLocation;

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

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

                /**
                 * Decodes a SourceLocation message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SourceLocation
                 * @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): akkaserverless.protocol.UserFunctionError.SourceLocation;

                /**
                 * Decodes a SourceLocation message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SourceLocation
                 * @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)): akkaserverless.protocol.UserFunctionError.SourceLocation;

                /**
                 * Verifies a SourceLocation message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a SourceLocation message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SourceLocation
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.UserFunctionError.SourceLocation;

                /**
                 * Creates a plain object from a SourceLocation message. Also converts values to other types if specified.
                 * @param message SourceLocation
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.protocol.UserFunctionError.SourceLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SourceLocation to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of a ProxyInfo. */
        interface IProxyInfo {

            /** ProxyInfo protocolMajorVersion */
            protocolMajorVersion?: (number|null);

            /** ProxyInfo protocolMinorVersion */
            protocolMinorVersion?: (number|null);

            /** ProxyInfo proxyName */
            proxyName?: (string|null);

            /** ProxyInfo proxyVersion */
            proxyVersion?: (string|null);

            /** ProxyInfo supportedEntityTypes */
            supportedEntityTypes?: (string[]|null);

            /** ProxyInfo devMode */
            devMode?: (boolean|null);

            /** ProxyInfo deploymentName */
            deploymentName?: (string|null);
        }

        /** Represents a ProxyInfo. */
        class ProxyInfo implements IProxyInfo {

            /**
             * Constructs a new ProxyInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.protocol.IProxyInfo);

            /** ProxyInfo protocolMajorVersion. */
            public protocolMajorVersion: number;

            /** ProxyInfo protocolMinorVersion. */
            public protocolMinorVersion: number;

            /** ProxyInfo proxyName. */
            public proxyName: string;

            /** ProxyInfo proxyVersion. */
            public proxyVersion: string;

            /** ProxyInfo supportedEntityTypes. */
            public supportedEntityTypes: string[];

            /** ProxyInfo devMode. */
            public devMode: boolean;

            /** ProxyInfo deploymentName. */
            public deploymentName: string;

            /**
             * Creates a new ProxyInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ProxyInfo instance
             */
            public static create(properties?: akkaserverless.protocol.IProxyInfo): akkaserverless.protocol.ProxyInfo;

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

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

            /**
             * Decodes a ProxyInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ProxyInfo
             * @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): akkaserverless.protocol.ProxyInfo;

            /**
             * Decodes a ProxyInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ProxyInfo
             * @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)): akkaserverless.protocol.ProxyInfo;

            /**
             * Verifies a ProxyInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ProxyInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ProxyInfo
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.protocol.ProxyInfo;

            /**
             * Creates a plain object from a ProxyInfo message. Also converts values to other types if specified.
             * @param message ProxyInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.protocol.ProxyInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ProxyInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Represents a Discovery */
        class Discovery extends $protobuf.rpc.Service {

            /**
             * Constructs a new Discovery service.
             * @param rpcImpl RPC implementation
             * @param [requestDelimited=false] Whether requests are length-delimited
             * @param [responseDelimited=false] Whether responses are length-delimited
             */
            constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

            /**
             * Creates new Discovery service using the specified rpc implementation.
             * @param rpcImpl RPC implementation
             * @param [requestDelimited=false] Whether requests are length-delimited
             * @param [responseDelimited=false] Whether responses are length-delimited
             * @returns RPC service. Useful where requests and/or responses are streamed.
             */
            public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Discovery;

            /**
             * Calls Discover.
             * @param request ProxyInfo message or plain object
             * @param callback Node-style callback called with the error, if any, and Spec
             */
            public discover(request: akkaserverless.protocol.IProxyInfo, callback: akkaserverless.protocol.Discovery.DiscoverCallback): void;

            /**
             * Calls Discover.
             * @param request ProxyInfo message or plain object
             * @returns Promise
             */
            public discover(request: akkaserverless.protocol.IProxyInfo): Promise<akkaserverless.protocol.Spec>;

            /**
             * Calls ReportError.
             * @param request UserFunctionError message or plain object
             * @param callback Node-style callback called with the error, if any, and Empty
             */
            public reportError(request: akkaserverless.protocol.IUserFunctionError, callback: akkaserverless.protocol.Discovery.ReportErrorCallback): void;

            /**
             * Calls ReportError.
             * @param request UserFunctionError message or plain object
             * @returns Promise
             */
            public reportError(request: akkaserverless.protocol.IUserFunctionError): Promise<google.protobuf.Empty>;

            /**
             * Calls ProxyTerminated.
             * @param request Empty message or plain object
             * @param callback Node-style callback called with the error, if any, and Empty
             */
            public proxyTerminated(request: google.protobuf.IEmpty, callback: akkaserverless.protocol.Discovery.ProxyTerminatedCallback): void;

            /**
             * Calls ProxyTerminated.
             * @param request Empty message or plain object
             * @returns Promise
             */
            public proxyTerminated(request: google.protobuf.IEmpty): Promise<google.protobuf.Empty>;

            /**
             * Calls HealthCheck.
             * @param request Empty message or plain object
             * @param callback Node-style callback called with the error, if any, and Empty
             */
            public healthCheck(request: google.protobuf.IEmpty, callback: akkaserverless.protocol.Discovery.HealthCheckCallback): void;

            /**
             * Calls HealthCheck.
             * @param request Empty message or plain object
             * @returns Promise
             */
            public healthCheck(request: google.protobuf.IEmpty): Promise<google.protobuf.Empty>;
        }

        namespace Discovery {

            /**
             * Callback as used by {@link akkaserverless.protocol.Discovery#discover}.
             * @param error Error, if any
             * @param [response] Spec
             */
            type DiscoverCallback = (error: (Error|null), response?: akkaserverless.protocol.Spec) => void;

            /**
             * Callback as used by {@link akkaserverless.protocol.Discovery#reportError}.
             * @param error Error, if any
             * @param [response] Empty
             */
            type ReportErrorCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

            /**
             * Callback as used by {@link akkaserverless.protocol.Discovery#proxyTerminated}.
             * @param error Error, if any
             * @param [response] Empty
             */
            type ProxyTerminatedCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

            /**
             * Callback as used by {@link akkaserverless.protocol.Discovery#healthCheck}.
             * @param error Error, if any
             * @param [response] Empty
             */
            type HealthCheckCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
        }
    }

    /** Namespace component. */
    namespace component {

        /** Properties of a Metadata. */
        interface IMetadata {

            /** Metadata entries */
            entries?: (akkaserverless.component.IMetadataEntry[]|null);
        }

        /** Represents a Metadata. */
        class Metadata implements IMetadata {

            /**
             * Constructs a new Metadata.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.component.IMetadata);

            /** Metadata entries. */
            public entries: akkaserverless.component.IMetadataEntry[];

            /**
             * Creates a new Metadata instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Metadata instance
             */
            public static create(properties?: akkaserverless.component.IMetadata): akkaserverless.component.Metadata;

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

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

            /**
             * Decodes a Metadata message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Metadata
             * @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): akkaserverless.component.Metadata;

            /**
             * Decodes a Metadata message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Metadata
             * @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)): akkaserverless.component.Metadata;

            /**
             * Verifies a Metadata message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Metadata message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Metadata
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.component.Metadata;

            /**
             * Creates a plain object from a Metadata message. Also converts values to other types if specified.
             * @param message Metadata
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.component.Metadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Metadata to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a MetadataEntry. */
        interface IMetadataEntry {

            /** MetadataEntry key */
            key?: (string|null);

            /** MetadataEntry stringValue */
            stringValue?: (string|null);

            /** MetadataEntry bytesValue */
            bytesValue?: (Uint8Array|null);
        }

        /** Represents a MetadataEntry. */
        class MetadataEntry implements IMetadataEntry {

            /**
             * Constructs a new MetadataEntry.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.component.IMetadataEntry);

            /** MetadataEntry key. */
            public key: string;

            /** MetadataEntry stringValue. */
            public stringValue?: (string|null);

            /** MetadataEntry bytesValue. */
            public bytesValue?: (Uint8Array|null);

            /** MetadataEntry value. */
            public value?: ("stringValue"|"bytesValue");

            /**
             * Creates a new MetadataEntry instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MetadataEntry instance
             */
            public static create(properties?: akkaserverless.component.IMetadataEntry): akkaserverless.component.MetadataEntry;

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

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

            /**
             * Decodes a MetadataEntry message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MetadataEntry
             * @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): akkaserverless.component.MetadataEntry;

            /**
             * Decodes a MetadataEntry message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MetadataEntry
             * @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)): akkaserverless.component.MetadataEntry;

            /**
             * Verifies a MetadataEntry message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MetadataEntry message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MetadataEntry
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.component.MetadataEntry;

            /**
             * Creates a plain object from a MetadataEntry message. Also converts values to other types if specified.
             * @param message MetadataEntry
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.component.MetadataEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MetadataEntry to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Reply. */
        interface IReply {

            /** Reply payload */
            payload?: (google.protobuf.IAny|null);

            /** Reply metadata */
            metadata?: (akkaserverless.component.IMetadata|null);
        }

        /** Represents a Reply. */
        class Reply implements IReply {

            /**
             * Constructs a new Reply.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.component.IReply);

            /** Reply payload. */
            public payload?: (google.protobuf.IAny|null);

            /** Reply metadata. */
            public metadata?: (akkaserverless.component.IMetadata|null);

            /**
             * Creates a new Reply instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Reply instance
             */
            public static create(properties?: akkaserverless.component.IReply): akkaserverless.component.Reply;

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

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

            /**
             * Decodes a Reply message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Reply
             * @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): akkaserverless.component.Reply;

            /**
             * Decodes a Reply message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Reply
             * @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)): akkaserverless.component.Reply;

            /**
             * Verifies a Reply message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Reply message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Reply
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.component.Reply;

            /**
             * Creates a plain object from a Reply message. Also converts values to other types if specified.
             * @param message Reply
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.component.Reply, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Reply to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Forward. */
        interface IForward {

            /** Forward serviceName */
            serviceName?: (string|null);

            /** Forward commandName */
            commandName?: (string|null);

            /** Forward payload */
            payload?: (google.protobuf.IAny|null);

            /** Forward metadata */
            metadata?: (akkaserverless.component.IMetadata|null);
        }

        /** Represents a Forward. */
        class Forward implements IForward {

            /**
             * Constructs a new Forward.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.component.IForward);

            /** Forward serviceName. */
            public serviceName: string;

            /** Forward commandName. */
            public commandName: string;

            /** Forward payload. */
            public payload?: (google.protobuf.IAny|null);

            /** Forward metadata. */
            public metadata?: (akkaserverless.component.IMetadata|null);

            /**
             * Creates a new Forward instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Forward instance
             */
            public static create(properties?: akkaserverless.component.IForward): akkaserverless.component.Forward;

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

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

            /**
             * Decodes a Forward message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Forward
             * @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): akkaserverless.component.Forward;

            /**
             * Decodes a Forward message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Forward
             * @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)): akkaserverless.component.Forward;

            /**
             * Verifies a Forward message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Forward message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Forward
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.component.Forward;

            /**
             * Creates a plain object from a Forward message. Also converts values to other types if specified.
             * @param message Forward
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.component.Forward, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Forward to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ClientAction. */
        interface IClientAction {

            /** ClientAction reply */
            reply?: (akkaserverless.component.IReply|null);

            /** ClientAction forward */
            forward?: (akkaserverless.component.IForward|null);

            /** ClientAction failure */
            failure?: (akkaserverless.component.IFailure|null);
        }

        /** Represents a ClientAction. */
        class ClientAction implements IClientAction {

            /**
             * Constructs a new ClientAction.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.component.IClientAction);

            /** ClientAction reply. */
            public reply?: (akkaserverless.component.IReply|null);

            /** ClientAction forward. */
            public forward?: (akkaserverless.component.IForward|null);

            /** ClientAction failure. */
            public failure?: (akkaserverless.component.IFailure|null);

            /** ClientAction action. */
            public action?: ("reply"|"forward"|"failure");

            /**
             * Creates a new ClientAction instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ClientAction instance
             */
            public static create(properties?: akkaserverless.component.IClientAction): akkaserverless.component.ClientAction;

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

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

            /**
             * Decodes a ClientAction message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ClientAction
             * @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): akkaserverless.component.ClientAction;

            /**
             * Decodes a ClientAction message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ClientAction
             * @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)): akkaserverless.component.ClientAction;

            /**
             * Verifies a ClientAction message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ClientAction message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ClientAction
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.component.ClientAction;

            /**
             * Creates a plain object from a ClientAction message. Also converts values to other types if specified.
             * @param message ClientAction
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.component.ClientAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ClientAction to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SideEffect. */
        interface ISideEffect {

            /** SideEffect serviceName */
            serviceName?: (string|null);

            /** SideEffect commandName */
            commandName?: (string|null);

            /** SideEffect payload */
            payload?: (google.protobuf.IAny|null);

            /** SideEffect synchronous */
            synchronous?: (boolean|null);

            /** SideEffect metadata */
            metadata?: (akkaserverless.component.IMetadata|null);
        }

        /** Represents a SideEffect. */
        class SideEffect implements ISideEffect {

            /**
             * Constructs a new SideEffect.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.component.ISideEffect);

            /** SideEffect serviceName. */
            public serviceName: string;

            /** SideEffect commandName. */
            public commandName: string;

            /** SideEffect payload. */
            public payload?: (google.protobuf.IAny|null);

            /** SideEffect synchronous. */
            public synchronous: boolean;

            /** SideEffect metadata. */
            public metadata?: (akkaserverless.component.IMetadata|null);

            /**
             * Creates a new SideEffect instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SideEffect instance
             */
            public static create(properties?: akkaserverless.component.ISideEffect): akkaserverless.component.SideEffect;

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

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

            /**
             * Decodes a SideEffect message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SideEffect
             * @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): akkaserverless.component.SideEffect;

            /**
             * Decodes a SideEffect message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SideEffect
             * @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)): akkaserverless.component.SideEffect;

            /**
             * Verifies a SideEffect message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SideEffect message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SideEffect
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.component.SideEffect;

            /**
             * Creates a plain object from a SideEffect message. Also converts values to other types if specified.
             * @param message SideEffect
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.component.SideEffect, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SideEffect to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StreamCancelled. */
        interface IStreamCancelled {

            /** StreamCancelled componentId */
            componentId?: (string|null);

            /** StreamCancelled id */
            id?: (number|Long|null);
        }

        /** Represents a StreamCancelled. */
        class StreamCancelled implements IStreamCancelled {

            /**
             * Constructs a new StreamCancelled.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.component.IStreamCancelled);

            /** StreamCancelled componentId. */
            public componentId: string;

            /** StreamCancelled id. */
            public id: (number|Long);

            /**
             * Creates a new StreamCancelled instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StreamCancelled instance
             */
            public static create(properties?: akkaserverless.component.IStreamCancelled): akkaserverless.component.StreamCancelled;

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

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

            /**
             * Decodes a StreamCancelled message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StreamCancelled
             * @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): akkaserverless.component.StreamCancelled;

            /**
             * Decodes a StreamCancelled message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StreamCancelled
             * @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)): akkaserverless.component.StreamCancelled;

            /**
             * Verifies a StreamCancelled message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StreamCancelled message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StreamCancelled
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.component.StreamCancelled;

            /**
             * Creates a plain object from a StreamCancelled message. Also converts values to other types if specified.
             * @param message StreamCancelled
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.component.StreamCancelled, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StreamCancelled to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Failure. */
        interface IFailure {

            /** Failure commandId */
            commandId?: (number|Long|null);

            /** Failure description */
            description?: (string|null);

            /** Failure restart */
            restart?: (boolean|null);

            /** Failure grpcStatusCode */
            grpcStatusCode?: (number|null);
        }

        /** Represents a Failure. */
        class Failure implements IFailure {

            /**
             * Constructs a new Failure.
             * @param [properties] Properties to set
             */
            constructor(properties?: akkaserverless.component.IFailure);

            /** Failure commandId. */
            public commandId: (number|Long);

            /** Failure description. */
            public description: string;

            /** Failure restart. */
            public restart: boolean;

            /** Failure grpcStatusCode. */
            public grpcStatusCode: number;

            /**
             * Creates a new Failure instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Failure instance
             */
            public static create(properties?: akkaserverless.component.IFailure): akkaserverless.component.Failure;

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

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

            /**
             * Decodes a Failure message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Failure
             * @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): akkaserverless.component.Failure;

            /**
             * Decodes a Failure message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Failure
             * @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)): akkaserverless.component.Failure;

            /**
             * Verifies a Failure message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Failure message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Failure
             */
            public static fromObject(object: { [k: string]: any }): akkaserverless.component.Failure;

            /**
             * Creates a plain object from a Failure message. Also converts values to other types if specified.
             * @param message Failure
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: akkaserverless.component.Failure, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Failure to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Namespace action. */
        namespace action {

            /** Properties of an ActionCommand. */
            interface IActionCommand {

                /** ActionCommand serviceName */
                serviceName?: (string|null);

                /** ActionCommand name */
                name?: (string|null);

                /** ActionCommand payload */
                payload?: (google.protobuf.IAny|null);

                /** ActionCommand metadata */
                metadata?: (akkaserverless.component.IMetadata|null);
            }

            /** Represents an ActionCommand. */
            class ActionCommand implements IActionCommand {

                /**
                 * Constructs a new ActionCommand.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.action.IActionCommand);

                /** ActionCommand serviceName. */
                public serviceName: string;

                /** ActionCommand name. */
                public name: string;

                /** ActionCommand payload. */
                public payload?: (google.protobuf.IAny|null);

                /** ActionCommand metadata. */
                public metadata?: (akkaserverless.component.IMetadata|null);

                /**
                 * Creates a new ActionCommand instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ActionCommand instance
                 */
                public static create(properties?: akkaserverless.component.action.IActionCommand): akkaserverless.component.action.ActionCommand;

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

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

                /**
                 * Decodes an ActionCommand message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ActionCommand
                 * @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): akkaserverless.component.action.ActionCommand;

                /**
                 * Decodes an ActionCommand message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ActionCommand
                 * @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)): akkaserverless.component.action.ActionCommand;

                /**
                 * Verifies an ActionCommand message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an ActionCommand message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ActionCommand
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.action.ActionCommand;

                /**
                 * Creates a plain object from an ActionCommand message. Also converts values to other types if specified.
                 * @param message ActionCommand
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.action.ActionCommand, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ActionCommand to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an ActionResponse. */
            interface IActionResponse {

                /** ActionResponse failure */
                failure?: (akkaserverless.component.IFailure|null);

                /** ActionResponse reply */
                reply?: (akkaserverless.component.IReply|null);

                /** ActionResponse forward */
                forward?: (akkaserverless.component.IForward|null);

                /** ActionResponse sideEffects */
                sideEffects?: (akkaserverless.component.ISideEffect[]|null);
            }

            /** Represents an ActionResponse. */
            class ActionResponse implements IActionResponse {

                /**
                 * Constructs a new ActionResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.action.IActionResponse);

                /** ActionResponse failure. */
                public failure?: (akkaserverless.component.IFailure|null);

                /** ActionResponse reply. */
                public reply?: (akkaserverless.component.IReply|null);

                /** ActionResponse forward. */
                public forward?: (akkaserverless.component.IForward|null);

                /** ActionResponse sideEffects. */
                public sideEffects: akkaserverless.component.ISideEffect[];

                /** ActionResponse response. */
                public response?: ("failure"|"reply"|"forward");

                /**
                 * Creates a new ActionResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ActionResponse instance
                 */
                public static create(properties?: akkaserverless.component.action.IActionResponse): akkaserverless.component.action.ActionResponse;

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

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

                /**
                 * Decodes an ActionResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ActionResponse
                 * @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): akkaserverless.component.action.ActionResponse;

                /**
                 * Decodes an ActionResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ActionResponse
                 * @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)): akkaserverless.component.action.ActionResponse;

                /**
                 * Verifies an ActionResponse message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an ActionResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ActionResponse
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.action.ActionResponse;

                /**
                 * Creates a plain object from an ActionResponse message. Also converts values to other types if specified.
                 * @param message ActionResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.action.ActionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ActionResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Represents an Actions */
            class Actions extends $protobuf.rpc.Service {

                /**
                 * Constructs a new Actions service.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 */
                constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                /**
                 * Creates new Actions service using the specified rpc implementation.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 * @returns RPC service. Useful where requests and/or responses are streamed.
                 */
                public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Actions;

                /**
                 * Calls HandleUnary.
                 * @param request ActionCommand message or plain object
                 * @param callback Node-style callback called with the error, if any, and ActionResponse
                 */
                public handleUnary(request: akkaserverless.component.action.IActionCommand, callback: akkaserverless.component.action.Actions.HandleUnaryCallback): void;

                /**
                 * Calls HandleUnary.
                 * @param request ActionCommand message or plain object
                 * @returns Promise
                 */
                public handleUnary(request: akkaserverless.component.action.IActionCommand): Promise<akkaserverless.component.action.ActionResponse>;

                /**
                 * Calls HandleStreamedIn.
                 * @param request ActionCommand message or plain object
                 * @param callback Node-style callback called with the error, if any, and ActionResponse
                 */
                public handleStreamedIn(request: akkaserverless.component.action.IActionCommand, callback: akkaserverless.component.action.Actions.HandleStreamedInCallback): void;

                /**
                 * Calls HandleStreamedIn.
                 * @param request ActionCommand message or plain object
                 * @returns Promise
                 */
                public handleStreamedIn(request: akkaserverless.component.action.IActionCommand): Promise<akkaserverless.component.action.ActionResponse>;

                /**
                 * Calls HandleStreamedOut.
                 * @param request ActionCommand message or plain object
                 * @param callback Node-style callback called with the error, if any, and ActionResponse
                 */
                public handleStreamedOut(request: akkaserverless.component.action.IActionCommand, callback: akkaserverless.component.action.Actions.HandleStreamedOutCallback): void;

                /**
                 * Calls HandleStreamedOut.
                 * @param request ActionCommand message or plain object
                 * @returns Promise
                 */
                public handleStreamedOut(request: akkaserverless.component.action.IActionCommand): Promise<akkaserverless.component.action.ActionResponse>;

                /**
                 * Calls HandleStreamed.
                 * @param request ActionCommand message or plain object
                 * @param callback Node-style callback called with the error, if any, and ActionResponse
                 */
                public handleStreamed(request: akkaserverless.component.action.IActionCommand, callback: akkaserverless.component.action.Actions.HandleStreamedCallback): void;

                /**
                 * Calls HandleStreamed.
                 * @param request ActionCommand message or plain object
                 * @returns Promise
                 */
                public handleStreamed(request: akkaserverless.component.action.IActionCommand): Promise<akkaserverless.component.action.ActionResponse>;
            }

            namespace Actions {

                /**
                 * Callback as used by {@link akkaserverless.component.action.Actions#handleUnary}.
                 * @param error Error, if any
                 * @param [response] ActionResponse
                 */
                type HandleUnaryCallback = (error: (Error|null), response?: akkaserverless.component.action.ActionResponse) => void;

                /**
                 * Callback as used by {@link akkaserverless.component.action.Actions#handleStreamedIn}.
                 * @param error Error, if any
                 * @param [response] ActionResponse
                 */
                type HandleStreamedInCallback = (error: (Error|null), response?: akkaserverless.component.action.ActionResponse) => void;

                /**
                 * Callback as used by {@link akkaserverless.component.action.Actions#handleStreamedOut}.
                 * @param error Error, if any
                 * @param [response] ActionResponse
                 */
                type HandleStreamedOutCallback = (error: (Error|null), response?: akkaserverless.component.action.ActionResponse) => void;

                /**
                 * Callback as used by {@link akkaserverless.component.action.Actions#handleStreamed}.
                 * @param error Error, if any
                 * @param [response] ActionResponse
                 */
                type HandleStreamedCallback = (error: (Error|null), response?: akkaserverless.component.action.ActionResponse) => void;
            }
        }

        /** Namespace entity. */
        namespace entity {

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

                /** Command entityId */
                entityId?: (string|null);

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

                /** Command name */
                name?: (string|null);

                /** Command payload */
                payload?: (google.protobuf.IAny|null);

                /** Command metadata */
                metadata?: (akkaserverless.component.IMetadata|null);
            }

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

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

                /** Command entityId. */
                public entityId: string;

                /** Command id. */
                public id: (number|Long);

                /** Command name. */
                public name: string;

                /** Command payload. */
                public payload?: (google.protobuf.IAny|null);

                /** Command metadata. */
                public metadata?: (akkaserverless.component.IMetadata|null);

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

                /**
                 * Encodes the specified Command message. Does not implicitly {@link akkaserverless.component.entity.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: akkaserverless.component.entity.ICommand, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Command message, length delimited. Does not implicitly {@link akkaserverless.component.entity.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: akkaserverless.component.entity.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): akkaserverless.component.entity.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)): akkaserverless.component.entity.Command;

                /**
                 * Verifies a Command message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Command message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Command
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.entity.Command;

                /**
                 * Creates a plain object from a Command message. Also converts values to other types if specified.
                 * @param message Command
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.entity.Command, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Command to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Namespace eventsourcedentity. */
        namespace eventsourcedentity {

            /** Properties of an EventSourcedInit. */
            interface IEventSourcedInit {

                /** EventSourcedInit serviceName */
                serviceName?: (string|null);

                /** EventSourcedInit entityId */
                entityId?: (string|null);

                /** EventSourcedInit snapshot */
                snapshot?: (akkaserverless.component.eventsourcedentity.IEventSourcedSnapshot|null);
            }

            /** Represents an EventSourcedInit. */
            class EventSourcedInit implements IEventSourcedInit {

                /**
                 * Constructs a new EventSourcedInit.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedInit);

                /** EventSourcedInit serviceName. */
                public serviceName: string;

                /** EventSourcedInit entityId. */
                public entityId: string;

                /** EventSourcedInit snapshot. */
                public snapshot?: (akkaserverless.component.eventsourcedentity.IEventSourcedSnapshot|null);

                /**
                 * Creates a new EventSourcedInit instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EventSourcedInit instance
                 */
                public static create(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedInit): akkaserverless.component.eventsourcedentity.EventSourcedInit;

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

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

                /**
                 * Decodes an EventSourcedInit message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EventSourcedInit
                 * @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): akkaserverless.component.eventsourcedentity.EventSourcedInit;

                /**
                 * Decodes an EventSourcedInit message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EventSourcedInit
                 * @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)): akkaserverless.component.eventsourcedentity.EventSourcedInit;

                /**
                 * Verifies an EventSourcedInit message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EventSourcedInit message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EventSourcedInit
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.eventsourcedentity.EventSourcedInit;

                /**
                 * Creates a plain object from an EventSourcedInit message. Also converts values to other types if specified.
                 * @param message EventSourcedInit
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.eventsourcedentity.EventSourcedInit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EventSourcedInit to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an EventSourcedSnapshot. */
            interface IEventSourcedSnapshot {

                /** EventSourcedSnapshot snapshotSequence */
                snapshotSequence?: (number|Long|null);

                /** EventSourcedSnapshot snapshot */
                snapshot?: (google.protobuf.IAny|null);
            }

            /** Represents an EventSourcedSnapshot. */
            class EventSourcedSnapshot implements IEventSourcedSnapshot {

                /**
                 * Constructs a new EventSourcedSnapshot.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedSnapshot);

                /** EventSourcedSnapshot snapshotSequence. */
                public snapshotSequence: (number|Long);

                /** EventSourcedSnapshot snapshot. */
                public snapshot?: (google.protobuf.IAny|null);

                /**
                 * Creates a new EventSourcedSnapshot instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EventSourcedSnapshot instance
                 */
                public static create(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedSnapshot): akkaserverless.component.eventsourcedentity.EventSourcedSnapshot;

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

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

                /**
                 * Decodes an EventSourcedSnapshot message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EventSourcedSnapshot
                 * @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): akkaserverless.component.eventsourcedentity.EventSourcedSnapshot;

                /**
                 * Decodes an EventSourcedSnapshot message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EventSourcedSnapshot
                 * @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)): akkaserverless.component.eventsourcedentity.EventSourcedSnapshot;

                /**
                 * Verifies an EventSourcedSnapshot message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EventSourcedSnapshot message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EventSourcedSnapshot
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.eventsourcedentity.EventSourcedSnapshot;

                /**
                 * Creates a plain object from an EventSourcedSnapshot message. Also converts values to other types if specified.
                 * @param message EventSourcedSnapshot
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.eventsourcedentity.EventSourcedSnapshot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EventSourcedSnapshot to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an EventSourcedEvent. */
            interface IEventSourcedEvent {

                /** EventSourcedEvent sequence */
                sequence?: (number|Long|null);

                /** EventSourcedEvent payload */
                payload?: (google.protobuf.IAny|null);
            }

            /** Represents an EventSourcedEvent. */
            class EventSourcedEvent implements IEventSourcedEvent {

                /**
                 * Constructs a new EventSourcedEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedEvent);

                /** EventSourcedEvent sequence. */
                public sequence: (number|Long);

                /** EventSourcedEvent payload. */
                public payload?: (google.protobuf.IAny|null);

                /**
                 * Creates a new EventSourcedEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EventSourcedEvent instance
                 */
                public static create(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedEvent): akkaserverless.component.eventsourcedentity.EventSourcedEvent;

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

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

                /**
                 * Decodes an EventSourcedEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EventSourcedEvent
                 * @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): akkaserverless.component.eventsourcedentity.EventSourcedEvent;

                /**
                 * Decodes an EventSourcedEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EventSourcedEvent
                 * @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)): akkaserverless.component.eventsourcedentity.EventSourcedEvent;

                /**
                 * Verifies an EventSourcedEvent message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EventSourcedEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EventSourcedEvent
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.eventsourcedentity.EventSourcedEvent;

                /**
                 * Creates a plain object from an EventSourcedEvent message. Also converts values to other types if specified.
                 * @param message EventSourcedEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.eventsourcedentity.EventSourcedEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EventSourcedEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an EventSourcedSnapshotRequest. */
            interface IEventSourcedSnapshotRequest {

                /** EventSourcedSnapshotRequest requestId */
                requestId?: (number|Long|null);
            }

            /** Represents an EventSourcedSnapshotRequest. */
            class EventSourcedSnapshotRequest implements IEventSourcedSnapshotRequest {

                /**
                 * Constructs a new EventSourcedSnapshotRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedSnapshotRequest);

                /** EventSourcedSnapshotRequest requestId. */
                public requestId: (number|Long);

                /**
                 * Creates a new EventSourcedSnapshotRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EventSourcedSnapshotRequest instance
                 */
                public static create(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedSnapshotRequest): akkaserverless.component.eventsourcedentity.EventSourcedSnapshotRequest;

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

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

                /**
                 * Decodes an EventSourcedSnapshotRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EventSourcedSnapshotRequest
                 * @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): akkaserverless.component.eventsourcedentity.EventSourcedSnapshotRequest;

                /**
                 * Decodes an EventSourcedSnapshotRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EventSourcedSnapshotRequest
                 * @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)): akkaserverless.component.eventsourcedentity.EventSourcedSnapshotRequest;

                /**
                 * Verifies an EventSourcedSnapshotRequest message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EventSourcedSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EventSourcedSnapshotRequest
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.eventsourcedentity.EventSourcedSnapshotRequest;

                /**
                 * Creates a plain object from an EventSourcedSnapshotRequest message. Also converts values to other types if specified.
                 * @param message EventSourcedSnapshotRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.eventsourcedentity.EventSourcedSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EventSourcedSnapshotRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an EventSourcedReply. */
            interface IEventSourcedReply {

                /** EventSourcedReply commandId */
                commandId?: (number|Long|null);

                /** EventSourcedReply clientAction */
                clientAction?: (akkaserverless.component.IClientAction|null);

                /** EventSourcedReply sideEffects */
                sideEffects?: (akkaserverless.component.ISideEffect[]|null);

                /** EventSourcedReply events */
                events?: (google.protobuf.IAny[]|null);

                /** EventSourcedReply snapshot */
                snapshot?: (google.protobuf.IAny|null);
            }

            /** Represents an EventSourcedReply. */
            class EventSourcedReply implements IEventSourcedReply {

                /**
                 * Constructs a new EventSourcedReply.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedReply);

                /** EventSourcedReply commandId. */
                public commandId: (number|Long);

                /** EventSourcedReply clientAction. */
                public clientAction?: (akkaserverless.component.IClientAction|null);

                /** EventSourcedReply sideEffects. */
                public sideEffects: akkaserverless.component.ISideEffect[];

                /** EventSourcedReply events. */
                public events: google.protobuf.IAny[];

                /** EventSourcedReply snapshot. */
                public snapshot?: (google.protobuf.IAny|null);

                /**
                 * Creates a new EventSourcedReply instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EventSourcedReply instance
                 */
                public static create(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedReply): akkaserverless.component.eventsourcedentity.EventSourcedReply;

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

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

                /**
                 * Decodes an EventSourcedReply message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EventSourcedReply
                 * @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): akkaserverless.component.eventsourcedentity.EventSourcedReply;

                /**
                 * Decodes an EventSourcedReply message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EventSourcedReply
                 * @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)): akkaserverless.component.eventsourcedentity.EventSourcedReply;

                /**
                 * Verifies an EventSourcedReply message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EventSourcedReply message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EventSourcedReply
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.eventsourcedentity.EventSourcedReply;

                /**
                 * Creates a plain object from an EventSourcedReply message. Also converts values to other types if specified.
                 * @param message EventSourcedReply
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.eventsourcedentity.EventSourcedReply, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EventSourcedReply to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an EventSourcedSnapshotReply. */
            interface IEventSourcedSnapshotReply {

                /** EventSourcedSnapshotReply requestId */
                requestId?: (number|Long|null);

                /** EventSourcedSnapshotReply snapshot */
                snapshot?: (google.protobuf.IAny|null);
            }

            /** Represents an EventSourcedSnapshotReply. */
            class EventSourcedSnapshotReply implements IEventSourcedSnapshotReply {

                /**
                 * Constructs a new EventSourcedSnapshotReply.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedSnapshotReply);

                /** EventSourcedSnapshotReply requestId. */
                public requestId: (number|Long);

                /** EventSourcedSnapshotReply snapshot. */
                public snapshot?: (google.protobuf.IAny|null);

                /**
                 * Creates a new EventSourcedSnapshotReply instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EventSourcedSnapshotReply instance
                 */
                public static create(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedSnapshotReply): akkaserverless.component.eventsourcedentity.EventSourcedSnapshotReply;

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

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

                /**
                 * Decodes an EventSourcedSnapshotReply message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EventSourcedSnapshotReply
                 * @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): akkaserverless.component.eventsourcedentity.EventSourcedSnapshotReply;

                /**
                 * Decodes an EventSourcedSnapshotReply message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EventSourcedSnapshotReply
                 * @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)): akkaserverless.component.eventsourcedentity.EventSourcedSnapshotReply;

                /**
                 * Verifies an EventSourcedSnapshotReply message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EventSourcedSnapshotReply message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EventSourcedSnapshotReply
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.eventsourcedentity.EventSourcedSnapshotReply;

                /**
                 * Creates a plain object from an EventSourcedSnapshotReply message. Also converts values to other types if specified.
                 * @param message EventSourcedSnapshotReply
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.eventsourcedentity.EventSourcedSnapshotReply, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EventSourcedSnapshotReply to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an EventSourcedStreamIn. */
            interface IEventSourcedStreamIn {

                /** EventSourcedStreamIn init */
                init?: (akkaserverless.component.eventsourcedentity.IEventSourcedInit|null);

                /** EventSourcedStreamIn event */
                event?: (akkaserverless.component.eventsourcedentity.IEventSourcedEvent|null);

                /** EventSourcedStreamIn command */
                command?: (akkaserverless.component.entity.ICommand|null);

                /** EventSourcedStreamIn snapshotRequest */
                snapshotRequest?: (akkaserverless.component.eventsourcedentity.IEventSourcedSnapshotRequest|null);
            }

            /** Represents an EventSourcedStreamIn. */
            class EventSourcedStreamIn implements IEventSourcedStreamIn {

                /**
                 * Constructs a new EventSourcedStreamIn.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedStreamIn);

                /** EventSourcedStreamIn init. */
                public init?: (akkaserverless.component.eventsourcedentity.IEventSourcedInit|null);

                /** EventSourcedStreamIn event. */
                public event?: (akkaserverless.component.eventsourcedentity.IEventSourcedEvent|null);

                /** EventSourcedStreamIn command. */
                public command?: (akkaserverless.component.entity.ICommand|null);

                /** EventSourcedStreamIn snapshotRequest. */
                public snapshotRequest?: (akkaserverless.component.eventsourcedentity.IEventSourcedSnapshotRequest|null);

                /** EventSourcedStreamIn message. */
                public message?: ("init"|"event"|"command"|"snapshotRequest");

                /**
                 * Creates a new EventSourcedStreamIn instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EventSourcedStreamIn instance
                 */
                public static create(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedStreamIn): akkaserverless.component.eventsourcedentity.EventSourcedStreamIn;

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

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

                /**
                 * Decodes an EventSourcedStreamIn message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EventSourcedStreamIn
                 * @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): akkaserverless.component.eventsourcedentity.EventSourcedStreamIn;

                /**
                 * Decodes an EventSourcedStreamIn message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EventSourcedStreamIn
                 * @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)): akkaserverless.component.eventsourcedentity.EventSourcedStreamIn;

                /**
                 * Verifies an EventSourcedStreamIn message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EventSourcedStreamIn message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EventSourcedStreamIn
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.eventsourcedentity.EventSourcedStreamIn;

                /**
                 * Creates a plain object from an EventSourcedStreamIn message. Also converts values to other types if specified.
                 * @param message EventSourcedStreamIn
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.eventsourcedentity.EventSourcedStreamIn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EventSourcedStreamIn to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an EventSourcedStreamOut. */
            interface IEventSourcedStreamOut {

                /** EventSourcedStreamOut reply */
                reply?: (akkaserverless.component.eventsourcedentity.IEventSourcedReply|null);

                /** EventSourcedStreamOut failure */
                failure?: (akkaserverless.component.IFailure|null);

                /** EventSourcedStreamOut snapshotReply */
                snapshotReply?: (akkaserverless.component.eventsourcedentity.IEventSourcedSnapshotReply|null);
            }

            /** Represents an EventSourcedStreamOut. */
            class EventSourcedStreamOut implements IEventSourcedStreamOut {

                /**
                 * Constructs a new EventSourcedStreamOut.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedStreamOut);

                /** EventSourcedStreamOut reply. */
                public reply?: (akkaserverless.component.eventsourcedentity.IEventSourcedReply|null);

                /** EventSourcedStreamOut failure. */
                public failure?: (akkaserverless.component.IFailure|null);

                /** EventSourcedStreamOut snapshotReply. */
                public snapshotReply?: (akkaserverless.component.eventsourcedentity.IEventSourcedSnapshotReply|null);

                /** EventSourcedStreamOut message. */
                public message?: ("reply"|"failure"|"snapshotReply");

                /**
                 * Creates a new EventSourcedStreamOut instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EventSourcedStreamOut instance
                 */
                public static create(properties?: akkaserverless.component.eventsourcedentity.IEventSourcedStreamOut): akkaserverless.component.eventsourcedentity.EventSourcedStreamOut;

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

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

                /**
                 * Decodes an EventSourcedStreamOut message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EventSourcedStreamOut
                 * @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): akkaserverless.component.eventsourcedentity.EventSourcedStreamOut;

                /**
                 * Decodes an EventSourcedStreamOut message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EventSourcedStreamOut
                 * @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)): akkaserverless.component.eventsourcedentity.EventSourcedStreamOut;

                /**
                 * Verifies an EventSourcedStreamOut message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EventSourcedStreamOut message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EventSourcedStreamOut
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.eventsourcedentity.EventSourcedStreamOut;

                /**
                 * Creates a plain object from an EventSourcedStreamOut message. Also converts values to other types if specified.
                 * @param message EventSourcedStreamOut
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.eventsourcedentity.EventSourcedStreamOut, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EventSourcedStreamOut to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Represents an EventSourcedEntities */
            class EventSourcedEntities extends $protobuf.rpc.Service {

                /**
                 * Constructs a new EventSourcedEntities service.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 */
                constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                /**
                 * Creates new EventSourcedEntities service using the specified rpc implementation.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 * @returns RPC service. Useful where requests and/or responses are streamed.
                 */
                public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): EventSourcedEntities;

                /**
                 * Calls Handle.
                 * @param request EventSourcedStreamIn message or plain object
                 * @param callback Node-style callback called with the error, if any, and EventSourcedStreamOut
                 */
                public handle(request: akkaserverless.component.eventsourcedentity.IEventSourcedStreamIn, callback: akkaserverless.component.eventsourcedentity.EventSourcedEntities.HandleCallback): void;

                /**
                 * Calls Handle.
                 * @param request EventSourcedStreamIn message or plain object
                 * @returns Promise
                 */
                public handle(request: akkaserverless.component.eventsourcedentity.IEventSourcedStreamIn): Promise<akkaserverless.component.eventsourcedentity.EventSourcedStreamOut>;
            }

            namespace EventSourcedEntities {

                /**
                 * Callback as used by {@link akkaserverless.component.eventsourcedentity.EventSourcedEntities#handle}.
                 * @param error Error, if any
                 * @param [response] EventSourcedStreamOut
                 */
                type HandleCallback = (error: (Error|null), response?: akkaserverless.component.eventsourcedentity.EventSourcedStreamOut) => void;
            }
        }

        /** Namespace replicatedentity. */
        namespace replicatedentity {

            /** Represents a ReplicatedEntities */
            class ReplicatedEntities extends $protobuf.rpc.Service {

                /**
                 * Constructs a new ReplicatedEntities service.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 */
                constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                /**
                 * Creates new ReplicatedEntities service using the specified rpc implementation.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 * @returns RPC service. Useful where requests and/or responses are streamed.
                 */
                public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): ReplicatedEntities;

                /**
                 * Calls Handle.
                 * @param request ReplicatedEntityStreamIn message or plain object
                 * @param callback Node-style callback called with the error, if any, and ReplicatedEntityStreamOut
                 */
                public handle(request: akkaserverless.component.replicatedentity.IReplicatedEntityStreamIn, callback: akkaserverless.component.replicatedentity.ReplicatedEntities.HandleCallback): void;

                /**
                 * Calls Handle.
                 * @param request ReplicatedEntityStreamIn message or plain object
                 * @returns Promise
                 */
                public handle(request: akkaserverless.component.replicatedentity.IReplicatedEntityStreamIn): Promise<akkaserverless.component.replicatedentity.ReplicatedEntityStreamOut>;
            }

            namespace ReplicatedEntities {

                /**
                 * Callback as used by {@link akkaserverless.component.replicatedentity.ReplicatedEntities#handle}.
                 * @param error Error, if any
                 * @param [response] ReplicatedEntityStreamOut
                 */
                type HandleCallback = (error: (Error|null), response?: akkaserverless.component.replicatedentity.ReplicatedEntityStreamOut) => void;
            }

            /** Properties of a ReplicatedEntityStreamIn. */
            interface IReplicatedEntityStreamIn {

                /** ReplicatedEntityStreamIn init */
                init?: (akkaserverless.component.replicatedentity.IReplicatedEntityInit|null);

                /** ReplicatedEntityStreamIn delta */
                delta?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelta|null);

                /** ReplicatedEntityStreamIn delete */
                "delete"?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelete|null);

                /** ReplicatedEntityStreamIn command */
                command?: (akkaserverless.component.entity.ICommand|null);
            }

            /** Represents a ReplicatedEntityStreamIn. */
            class ReplicatedEntityStreamIn implements IReplicatedEntityStreamIn {

                /**
                 * Constructs a new ReplicatedEntityStreamIn.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityStreamIn);

                /** ReplicatedEntityStreamIn init. */
                public init?: (akkaserverless.component.replicatedentity.IReplicatedEntityInit|null);

                /** ReplicatedEntityStreamIn delta. */
                public delta?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelta|null);

                /** ReplicatedEntityStreamIn delete. */
                public delete?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelete|null);

                /** ReplicatedEntityStreamIn command. */
                public command?: (akkaserverless.component.entity.ICommand|null);

                /** ReplicatedEntityStreamIn message. */
                public message?: ("init"|"delta"|"delete"|"command");

                /**
                 * Creates a new ReplicatedEntityStreamIn instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedEntityStreamIn instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityStreamIn): akkaserverless.component.replicatedentity.ReplicatedEntityStreamIn;

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

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

                /**
                 * Decodes a ReplicatedEntityStreamIn message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedEntityStreamIn
                 * @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): akkaserverless.component.replicatedentity.ReplicatedEntityStreamIn;

                /**
                 * Decodes a ReplicatedEntityStreamIn message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedEntityStreamIn
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedEntityStreamIn;

                /**
                 * Verifies a ReplicatedEntityStreamIn message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedEntityStreamIn message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedEntityStreamIn
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedEntityStreamIn;

                /**
                 * Creates a plain object from a ReplicatedEntityStreamIn message. Also converts values to other types if specified.
                 * @param message ReplicatedEntityStreamIn
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedEntityStreamIn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedEntityStreamIn to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedEntityStreamOut. */
            interface IReplicatedEntityStreamOut {

                /** ReplicatedEntityStreamOut reply */
                reply?: (akkaserverless.component.replicatedentity.IReplicatedEntityReply|null);

                /** ReplicatedEntityStreamOut failure */
                failure?: (akkaserverless.component.IFailure|null);
            }

            /** Represents a ReplicatedEntityStreamOut. */
            class ReplicatedEntityStreamOut implements IReplicatedEntityStreamOut {

                /**
                 * Constructs a new ReplicatedEntityStreamOut.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityStreamOut);

                /** ReplicatedEntityStreamOut reply. */
                public reply?: (akkaserverless.component.replicatedentity.IReplicatedEntityReply|null);

                /** ReplicatedEntityStreamOut failure. */
                public failure?: (akkaserverless.component.IFailure|null);

                /** ReplicatedEntityStreamOut message. */
                public message?: ("reply"|"failure");

                /**
                 * Creates a new ReplicatedEntityStreamOut instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedEntityStreamOut instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityStreamOut): akkaserverless.component.replicatedentity.ReplicatedEntityStreamOut;

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

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

                /**
                 * Decodes a ReplicatedEntityStreamOut message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedEntityStreamOut
                 * @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): akkaserverless.component.replicatedentity.ReplicatedEntityStreamOut;

                /**
                 * Decodes a ReplicatedEntityStreamOut message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedEntityStreamOut
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedEntityStreamOut;

                /**
                 * Verifies a ReplicatedEntityStreamOut message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedEntityStreamOut message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedEntityStreamOut
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedEntityStreamOut;

                /**
                 * Creates a plain object from a ReplicatedEntityStreamOut message. Also converts values to other types if specified.
                 * @param message ReplicatedEntityStreamOut
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedEntityStreamOut, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedEntityStreamOut to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedEntityDelta. */
            interface IReplicatedEntityDelta {

                /** ReplicatedEntityDelta counter */
                counter?: (akkaserverless.component.replicatedentity.IReplicatedCounterDelta|null);

                /** ReplicatedEntityDelta replicatedSet */
                replicatedSet?: (akkaserverless.component.replicatedentity.IReplicatedSetDelta|null);

                /** ReplicatedEntityDelta register */
                register?: (akkaserverless.component.replicatedentity.IReplicatedRegisterDelta|null);

                /** ReplicatedEntityDelta replicatedMap */
                replicatedMap?: (akkaserverless.component.replicatedentity.IReplicatedMapDelta|null);

                /** ReplicatedEntityDelta replicatedCounterMap */
                replicatedCounterMap?: (akkaserverless.component.replicatedentity.IReplicatedCounterMapDelta|null);

                /** ReplicatedEntityDelta replicatedRegisterMap */
                replicatedRegisterMap?: (akkaserverless.component.replicatedentity.IReplicatedRegisterMapDelta|null);

                /** ReplicatedEntityDelta replicatedMultiMap */
                replicatedMultiMap?: (akkaserverless.component.replicatedentity.IReplicatedMultiMapDelta|null);

                /** ReplicatedEntityDelta vote */
                vote?: (akkaserverless.component.replicatedentity.IVoteDelta|null);
            }

            /** Represents a ReplicatedEntityDelta. */
            class ReplicatedEntityDelta implements IReplicatedEntityDelta {

                /**
                 * Constructs a new ReplicatedEntityDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityDelta);

                /** ReplicatedEntityDelta counter. */
                public counter?: (akkaserverless.component.replicatedentity.IReplicatedCounterDelta|null);

                /** ReplicatedEntityDelta replicatedSet. */
                public replicatedSet?: (akkaserverless.component.replicatedentity.IReplicatedSetDelta|null);

                /** ReplicatedEntityDelta register. */
                public register?: (akkaserverless.component.replicatedentity.IReplicatedRegisterDelta|null);

                /** ReplicatedEntityDelta replicatedMap. */
                public replicatedMap?: (akkaserverless.component.replicatedentity.IReplicatedMapDelta|null);

                /** ReplicatedEntityDelta replicatedCounterMap. */
                public replicatedCounterMap?: (akkaserverless.component.replicatedentity.IReplicatedCounterMapDelta|null);

                /** ReplicatedEntityDelta replicatedRegisterMap. */
                public replicatedRegisterMap?: (akkaserverless.component.replicatedentity.IReplicatedRegisterMapDelta|null);

                /** ReplicatedEntityDelta replicatedMultiMap. */
                public replicatedMultiMap?: (akkaserverless.component.replicatedentity.IReplicatedMultiMapDelta|null);

                /** ReplicatedEntityDelta vote. */
                public vote?: (akkaserverless.component.replicatedentity.IVoteDelta|null);

                /** ReplicatedEntityDelta delta. */
                public delta?: ("counter"|"replicatedSet"|"register"|"replicatedMap"|"replicatedCounterMap"|"replicatedRegisterMap"|"replicatedMultiMap"|"vote");

                /**
                 * Creates a new ReplicatedEntityDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedEntityDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityDelta): akkaserverless.component.replicatedentity.ReplicatedEntityDelta;

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

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

                /**
                 * Decodes a ReplicatedEntityDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedEntityDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedEntityDelta;

                /**
                 * Decodes a ReplicatedEntityDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedEntityDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedEntityDelta;

                /**
                 * Verifies a ReplicatedEntityDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedEntityDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedEntityDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedEntityDelta;

                /**
                 * Creates a plain object from a ReplicatedEntityDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedEntityDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedEntityDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedEntityDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedCounterDelta. */
            interface IReplicatedCounterDelta {

                /** ReplicatedCounterDelta change */
                change?: (number|Long|null);
            }

            /** Represents a ReplicatedCounterDelta. */
            class ReplicatedCounterDelta implements IReplicatedCounterDelta {

                /**
                 * Constructs a new ReplicatedCounterDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedCounterDelta);

                /** ReplicatedCounterDelta change. */
                public change: (number|Long);

                /**
                 * Creates a new ReplicatedCounterDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedCounterDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedCounterDelta): akkaserverless.component.replicatedentity.ReplicatedCounterDelta;

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

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

                /**
                 * Decodes a ReplicatedCounterDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedCounterDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedCounterDelta;

                /**
                 * Decodes a ReplicatedCounterDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedCounterDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedCounterDelta;

                /**
                 * Verifies a ReplicatedCounterDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedCounterDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedCounterDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedCounterDelta;

                /**
                 * Creates a plain object from a ReplicatedCounterDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedCounterDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedCounterDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedCounterDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedSetDelta. */
            interface IReplicatedSetDelta {

                /** ReplicatedSetDelta cleared */
                cleared?: (boolean|null);

                /** ReplicatedSetDelta removed */
                removed?: (google.protobuf.IAny[]|null);

                /** ReplicatedSetDelta added */
                added?: (google.protobuf.IAny[]|null);
            }

            /** Represents a ReplicatedSetDelta. */
            class ReplicatedSetDelta implements IReplicatedSetDelta {

                /**
                 * Constructs a new ReplicatedSetDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedSetDelta);

                /** ReplicatedSetDelta cleared. */
                public cleared: boolean;

                /** ReplicatedSetDelta removed. */
                public removed: google.protobuf.IAny[];

                /** ReplicatedSetDelta added. */
                public added: google.protobuf.IAny[];

                /**
                 * Creates a new ReplicatedSetDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedSetDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedSetDelta): akkaserverless.component.replicatedentity.ReplicatedSetDelta;

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

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

                /**
                 * Decodes a ReplicatedSetDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedSetDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedSetDelta;

                /**
                 * Decodes a ReplicatedSetDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedSetDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedSetDelta;

                /**
                 * Verifies a ReplicatedSetDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedSetDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedSetDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedSetDelta;

                /**
                 * Creates a plain object from a ReplicatedSetDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedSetDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedSetDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedSetDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedRegisterDelta. */
            interface IReplicatedRegisterDelta {

                /** ReplicatedRegisterDelta value */
                value?: (google.protobuf.IAny|null);

                /** ReplicatedRegisterDelta clock */
                clock?: (akkaserverless.component.replicatedentity.ReplicatedEntityClock|null);

                /** ReplicatedRegisterDelta customClockValue */
                customClockValue?: (number|Long|null);
            }

            /** Represents a ReplicatedRegisterDelta. */
            class ReplicatedRegisterDelta implements IReplicatedRegisterDelta {

                /**
                 * Constructs a new ReplicatedRegisterDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedRegisterDelta);

                /** ReplicatedRegisterDelta value. */
                public value?: (google.protobuf.IAny|null);

                /** ReplicatedRegisterDelta clock. */
                public clock: akkaserverless.component.replicatedentity.ReplicatedEntityClock;

                /** ReplicatedRegisterDelta customClockValue. */
                public customClockValue: (number|Long);

                /**
                 * Creates a new ReplicatedRegisterDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedRegisterDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedRegisterDelta): akkaserverless.component.replicatedentity.ReplicatedRegisterDelta;

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

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

                /**
                 * Decodes a ReplicatedRegisterDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedRegisterDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedRegisterDelta;

                /**
                 * Decodes a ReplicatedRegisterDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedRegisterDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedRegisterDelta;

                /**
                 * Verifies a ReplicatedRegisterDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedRegisterDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedRegisterDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedRegisterDelta;

                /**
                 * Creates a plain object from a ReplicatedRegisterDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedRegisterDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedRegisterDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedRegisterDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedMapDelta. */
            interface IReplicatedMapDelta {

                /** ReplicatedMapDelta cleared */
                cleared?: (boolean|null);

                /** ReplicatedMapDelta removed */
                removed?: (google.protobuf.IAny[]|null);

                /** ReplicatedMapDelta updated */
                updated?: (akkaserverless.component.replicatedentity.IReplicatedMapEntryDelta[]|null);

                /** ReplicatedMapDelta added */
                added?: (akkaserverless.component.replicatedentity.IReplicatedMapEntryDelta[]|null);
            }

            /** Represents a ReplicatedMapDelta. */
            class ReplicatedMapDelta implements IReplicatedMapDelta {

                /**
                 * Constructs a new ReplicatedMapDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedMapDelta);

                /** ReplicatedMapDelta cleared. */
                public cleared: boolean;

                /** ReplicatedMapDelta removed. */
                public removed: google.protobuf.IAny[];

                /** ReplicatedMapDelta updated. */
                public updated: akkaserverless.component.replicatedentity.IReplicatedMapEntryDelta[];

                /** ReplicatedMapDelta added. */
                public added: akkaserverless.component.replicatedentity.IReplicatedMapEntryDelta[];

                /**
                 * Creates a new ReplicatedMapDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedMapDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedMapDelta): akkaserverless.component.replicatedentity.ReplicatedMapDelta;

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

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

                /**
                 * Decodes a ReplicatedMapDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedMapDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedMapDelta;

                /**
                 * Decodes a ReplicatedMapDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedMapDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedMapDelta;

                /**
                 * Verifies a ReplicatedMapDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedMapDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedMapDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedMapDelta;

                /**
                 * Creates a plain object from a ReplicatedMapDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedMapDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedMapDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedMapDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedMapEntryDelta. */
            interface IReplicatedMapEntryDelta {

                /** ReplicatedMapEntryDelta key */
                key?: (google.protobuf.IAny|null);

                /** ReplicatedMapEntryDelta delta */
                delta?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelta|null);
            }

            /** Represents a ReplicatedMapEntryDelta. */
            class ReplicatedMapEntryDelta implements IReplicatedMapEntryDelta {

                /**
                 * Constructs a new ReplicatedMapEntryDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedMapEntryDelta);

                /** ReplicatedMapEntryDelta key. */
                public key?: (google.protobuf.IAny|null);

                /** ReplicatedMapEntryDelta delta. */
                public delta?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelta|null);

                /**
                 * Creates a new ReplicatedMapEntryDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedMapEntryDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedMapEntryDelta): akkaserverless.component.replicatedentity.ReplicatedMapEntryDelta;

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

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

                /**
                 * Decodes a ReplicatedMapEntryDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedMapEntryDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedMapEntryDelta;

                /**
                 * Decodes a ReplicatedMapEntryDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedMapEntryDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedMapEntryDelta;

                /**
                 * Verifies a ReplicatedMapEntryDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedMapEntryDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedMapEntryDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedMapEntryDelta;

                /**
                 * Creates a plain object from a ReplicatedMapEntryDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedMapEntryDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedMapEntryDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedMapEntryDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedCounterMapDelta. */
            interface IReplicatedCounterMapDelta {

                /** ReplicatedCounterMapDelta cleared */
                cleared?: (boolean|null);

                /** ReplicatedCounterMapDelta removed */
                removed?: (google.protobuf.IAny[]|null);

                /** ReplicatedCounterMapDelta updated */
                updated?: (akkaserverless.component.replicatedentity.IReplicatedCounterMapEntryDelta[]|null);
            }

            /** Represents a ReplicatedCounterMapDelta. */
            class ReplicatedCounterMapDelta implements IReplicatedCounterMapDelta {

                /**
                 * Constructs a new ReplicatedCounterMapDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedCounterMapDelta);

                /** ReplicatedCounterMapDelta cleared. */
                public cleared: boolean;

                /** ReplicatedCounterMapDelta removed. */
                public removed: google.protobuf.IAny[];

                /** ReplicatedCounterMapDelta updated. */
                public updated: akkaserverless.component.replicatedentity.IReplicatedCounterMapEntryDelta[];

                /**
                 * Creates a new ReplicatedCounterMapDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedCounterMapDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedCounterMapDelta): akkaserverless.component.replicatedentity.ReplicatedCounterMapDelta;

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

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

                /**
                 * Decodes a ReplicatedCounterMapDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedCounterMapDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedCounterMapDelta;

                /**
                 * Decodes a ReplicatedCounterMapDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedCounterMapDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedCounterMapDelta;

                /**
                 * Verifies a ReplicatedCounterMapDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedCounterMapDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedCounterMapDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedCounterMapDelta;

                /**
                 * Creates a plain object from a ReplicatedCounterMapDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedCounterMapDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedCounterMapDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedCounterMapDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedCounterMapEntryDelta. */
            interface IReplicatedCounterMapEntryDelta {

                /** ReplicatedCounterMapEntryDelta key */
                key?: (google.protobuf.IAny|null);

                /** ReplicatedCounterMapEntryDelta delta */
                delta?: (akkaserverless.component.replicatedentity.IReplicatedCounterDelta|null);
            }

            /** Represents a ReplicatedCounterMapEntryDelta. */
            class ReplicatedCounterMapEntryDelta implements IReplicatedCounterMapEntryDelta {

                /**
                 * Constructs a new ReplicatedCounterMapEntryDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedCounterMapEntryDelta);

                /** ReplicatedCounterMapEntryDelta key. */
                public key?: (google.protobuf.IAny|null);

                /** ReplicatedCounterMapEntryDelta delta. */
                public delta?: (akkaserverless.component.replicatedentity.IReplicatedCounterDelta|null);

                /**
                 * Creates a new ReplicatedCounterMapEntryDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedCounterMapEntryDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedCounterMapEntryDelta): akkaserverless.component.replicatedentity.ReplicatedCounterMapEntryDelta;

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

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

                /**
                 * Decodes a ReplicatedCounterMapEntryDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedCounterMapEntryDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedCounterMapEntryDelta;

                /**
                 * Decodes a ReplicatedCounterMapEntryDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedCounterMapEntryDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedCounterMapEntryDelta;

                /**
                 * Verifies a ReplicatedCounterMapEntryDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedCounterMapEntryDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedCounterMapEntryDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedCounterMapEntryDelta;

                /**
                 * Creates a plain object from a ReplicatedCounterMapEntryDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedCounterMapEntryDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedCounterMapEntryDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedCounterMapEntryDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedRegisterMapDelta. */
            interface IReplicatedRegisterMapDelta {

                /** ReplicatedRegisterMapDelta cleared */
                cleared?: (boolean|null);

                /** ReplicatedRegisterMapDelta removed */
                removed?: (google.protobuf.IAny[]|null);

                /** ReplicatedRegisterMapDelta updated */
                updated?: (akkaserverless.component.replicatedentity.IReplicatedRegisterMapEntryDelta[]|null);
            }

            /** Represents a ReplicatedRegisterMapDelta. */
            class ReplicatedRegisterMapDelta implements IReplicatedRegisterMapDelta {

                /**
                 * Constructs a new ReplicatedRegisterMapDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedRegisterMapDelta);

                /** ReplicatedRegisterMapDelta cleared. */
                public cleared: boolean;

                /** ReplicatedRegisterMapDelta removed. */
                public removed: google.protobuf.IAny[];

                /** ReplicatedRegisterMapDelta updated. */
                public updated: akkaserverless.component.replicatedentity.IReplicatedRegisterMapEntryDelta[];

                /**
                 * Creates a new ReplicatedRegisterMapDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedRegisterMapDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedRegisterMapDelta): akkaserverless.component.replicatedentity.ReplicatedRegisterMapDelta;

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

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

                /**
                 * Decodes a ReplicatedRegisterMapDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedRegisterMapDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedRegisterMapDelta;

                /**
                 * Decodes a ReplicatedRegisterMapDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedRegisterMapDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedRegisterMapDelta;

                /**
                 * Verifies a ReplicatedRegisterMapDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedRegisterMapDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedRegisterMapDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedRegisterMapDelta;

                /**
                 * Creates a plain object from a ReplicatedRegisterMapDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedRegisterMapDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedRegisterMapDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedRegisterMapDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedRegisterMapEntryDelta. */
            interface IReplicatedRegisterMapEntryDelta {

                /** ReplicatedRegisterMapEntryDelta key */
                key?: (google.protobuf.IAny|null);

                /** ReplicatedRegisterMapEntryDelta delta */
                delta?: (akkaserverless.component.replicatedentity.IReplicatedRegisterDelta|null);
            }

            /** Represents a ReplicatedRegisterMapEntryDelta. */
            class ReplicatedRegisterMapEntryDelta implements IReplicatedRegisterMapEntryDelta {

                /**
                 * Constructs a new ReplicatedRegisterMapEntryDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedRegisterMapEntryDelta);

                /** ReplicatedRegisterMapEntryDelta key. */
                public key?: (google.protobuf.IAny|null);

                /** ReplicatedRegisterMapEntryDelta delta. */
                public delta?: (akkaserverless.component.replicatedentity.IReplicatedRegisterDelta|null);

                /**
                 * Creates a new ReplicatedRegisterMapEntryDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedRegisterMapEntryDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedRegisterMapEntryDelta): akkaserverless.component.replicatedentity.ReplicatedRegisterMapEntryDelta;

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

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

                /**
                 * Decodes a ReplicatedRegisterMapEntryDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedRegisterMapEntryDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedRegisterMapEntryDelta;

                /**
                 * Decodes a ReplicatedRegisterMapEntryDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedRegisterMapEntryDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedRegisterMapEntryDelta;

                /**
                 * Verifies a ReplicatedRegisterMapEntryDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedRegisterMapEntryDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedRegisterMapEntryDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedRegisterMapEntryDelta;

                /**
                 * Creates a plain object from a ReplicatedRegisterMapEntryDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedRegisterMapEntryDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedRegisterMapEntryDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedRegisterMapEntryDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedMultiMapDelta. */
            interface IReplicatedMultiMapDelta {

                /** ReplicatedMultiMapDelta cleared */
                cleared?: (boolean|null);

                /** ReplicatedMultiMapDelta removed */
                removed?: (google.protobuf.IAny[]|null);

                /** ReplicatedMultiMapDelta updated */
                updated?: (akkaserverless.component.replicatedentity.IReplicatedMultiMapEntryDelta[]|null);
            }

            /** Represents a ReplicatedMultiMapDelta. */
            class ReplicatedMultiMapDelta implements IReplicatedMultiMapDelta {

                /**
                 * Constructs a new ReplicatedMultiMapDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedMultiMapDelta);

                /** ReplicatedMultiMapDelta cleared. */
                public cleared: boolean;

                /** ReplicatedMultiMapDelta removed. */
                public removed: google.protobuf.IAny[];

                /** ReplicatedMultiMapDelta updated. */
                public updated: akkaserverless.component.replicatedentity.IReplicatedMultiMapEntryDelta[];

                /**
                 * Creates a new ReplicatedMultiMapDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedMultiMapDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedMultiMapDelta): akkaserverless.component.replicatedentity.ReplicatedMultiMapDelta;

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

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

                /**
                 * Decodes a ReplicatedMultiMapDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedMultiMapDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedMultiMapDelta;

                /**
                 * Decodes a ReplicatedMultiMapDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedMultiMapDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedMultiMapDelta;

                /**
                 * Verifies a ReplicatedMultiMapDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedMultiMapDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedMultiMapDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedMultiMapDelta;

                /**
                 * Creates a plain object from a ReplicatedMultiMapDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedMultiMapDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedMultiMapDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedMultiMapDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedMultiMapEntryDelta. */
            interface IReplicatedMultiMapEntryDelta {

                /** ReplicatedMultiMapEntryDelta key */
                key?: (google.protobuf.IAny|null);

                /** ReplicatedMultiMapEntryDelta delta */
                delta?: (akkaserverless.component.replicatedentity.IReplicatedSetDelta|null);
            }

            /** Represents a ReplicatedMultiMapEntryDelta. */
            class ReplicatedMultiMapEntryDelta implements IReplicatedMultiMapEntryDelta {

                /**
                 * Constructs a new ReplicatedMultiMapEntryDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedMultiMapEntryDelta);

                /** ReplicatedMultiMapEntryDelta key. */
                public key?: (google.protobuf.IAny|null);

                /** ReplicatedMultiMapEntryDelta delta. */
                public delta?: (akkaserverless.component.replicatedentity.IReplicatedSetDelta|null);

                /**
                 * Creates a new ReplicatedMultiMapEntryDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedMultiMapEntryDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedMultiMapEntryDelta): akkaserverless.component.replicatedentity.ReplicatedMultiMapEntryDelta;

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

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

                /**
                 * Decodes a ReplicatedMultiMapEntryDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedMultiMapEntryDelta
                 * @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): akkaserverless.component.replicatedentity.ReplicatedMultiMapEntryDelta;

                /**
                 * Decodes a ReplicatedMultiMapEntryDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedMultiMapEntryDelta
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedMultiMapEntryDelta;

                /**
                 * Verifies a ReplicatedMultiMapEntryDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedMultiMapEntryDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedMultiMapEntryDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedMultiMapEntryDelta;

                /**
                 * Creates a plain object from a ReplicatedMultiMapEntryDelta message. Also converts values to other types if specified.
                 * @param message ReplicatedMultiMapEntryDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedMultiMapEntryDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedMultiMapEntryDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a VoteDelta. */
            interface IVoteDelta {

                /** VoteDelta selfVote */
                selfVote?: (boolean|null);

                /** VoteDelta votesFor */
                votesFor?: (number|null);

                /** VoteDelta totalVoters */
                totalVoters?: (number|null);
            }

            /** Represents a VoteDelta. */
            class VoteDelta implements IVoteDelta {

                /**
                 * Constructs a new VoteDelta.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IVoteDelta);

                /** VoteDelta selfVote. */
                public selfVote: boolean;

                /** VoteDelta votesFor. */
                public votesFor: number;

                /** VoteDelta totalVoters. */
                public totalVoters: number;

                /**
                 * Creates a new VoteDelta instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns VoteDelta instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IVoteDelta): akkaserverless.component.replicatedentity.VoteDelta;

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

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

                /**
                 * Decodes a VoteDelta message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns VoteDelta
                 * @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): akkaserverless.component.replicatedentity.VoteDelta;

                /**
                 * Decodes a VoteDelta message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns VoteDelta
                 * @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)): akkaserverless.component.replicatedentity.VoteDelta;

                /**
                 * Verifies a VoteDelta message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a VoteDelta message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns VoteDelta
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.VoteDelta;

                /**
                 * Creates a plain object from a VoteDelta message. Also converts values to other types if specified.
                 * @param message VoteDelta
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.VoteDelta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this VoteDelta to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedEntityInit. */
            interface IReplicatedEntityInit {

                /** ReplicatedEntityInit serviceName */
                serviceName?: (string|null);

                /** ReplicatedEntityInit entityId */
                entityId?: (string|null);

                /** ReplicatedEntityInit delta */
                delta?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelta|null);
            }

            /** Represents a ReplicatedEntityInit. */
            class ReplicatedEntityInit implements IReplicatedEntityInit {

                /**
                 * Constructs a new ReplicatedEntityInit.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityInit);

                /** ReplicatedEntityInit serviceName. */
                public serviceName: string;

                /** ReplicatedEntityInit entityId. */
                public entityId: string;

                /** ReplicatedEntityInit delta. */
                public delta?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelta|null);

                /**
                 * Creates a new ReplicatedEntityInit instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedEntityInit instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityInit): akkaserverless.component.replicatedentity.ReplicatedEntityInit;

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

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

                /**
                 * Decodes a ReplicatedEntityInit message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedEntityInit
                 * @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): akkaserverless.component.replicatedentity.ReplicatedEntityInit;

                /**
                 * Decodes a ReplicatedEntityInit message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedEntityInit
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedEntityInit;

                /**
                 * Verifies a ReplicatedEntityInit message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedEntityInit message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedEntityInit
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedEntityInit;

                /**
                 * Creates a plain object from a ReplicatedEntityInit message. Also converts values to other types if specified.
                 * @param message ReplicatedEntityInit
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedEntityInit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedEntityInit to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedEntityDelete. */
            interface IReplicatedEntityDelete {
            }

            /** Represents a ReplicatedEntityDelete. */
            class ReplicatedEntityDelete implements IReplicatedEntityDelete {

                /**
                 * Constructs a new ReplicatedEntityDelete.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityDelete);

                /**
                 * Creates a new ReplicatedEntityDelete instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedEntityDelete instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityDelete): akkaserverless.component.replicatedentity.ReplicatedEntityDelete;

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

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

                /**
                 * Decodes a ReplicatedEntityDelete message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedEntityDelete
                 * @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): akkaserverless.component.replicatedentity.ReplicatedEntityDelete;

                /**
                 * Decodes a ReplicatedEntityDelete message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedEntityDelete
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedEntityDelete;

                /**
                 * Verifies a ReplicatedEntityDelete message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedEntityDelete message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedEntityDelete
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedEntityDelete;

                /**
                 * Creates a plain object from a ReplicatedEntityDelete message. Also converts values to other types if specified.
                 * @param message ReplicatedEntityDelete
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedEntityDelete, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedEntityDelete to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedEntityReply. */
            interface IReplicatedEntityReply {

                /** ReplicatedEntityReply commandId */
                commandId?: (number|Long|null);

                /** ReplicatedEntityReply clientAction */
                clientAction?: (akkaserverless.component.IClientAction|null);

                /** ReplicatedEntityReply sideEffects */
                sideEffects?: (akkaserverless.component.ISideEffect[]|null);

                /** ReplicatedEntityReply stateAction */
                stateAction?: (akkaserverless.component.replicatedentity.IReplicatedEntityStateAction|null);
            }

            /** Represents a ReplicatedEntityReply. */
            class ReplicatedEntityReply implements IReplicatedEntityReply {

                /**
                 * Constructs a new ReplicatedEntityReply.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityReply);

                /** ReplicatedEntityReply commandId. */
                public commandId: (number|Long);

                /** ReplicatedEntityReply clientAction. */
                public clientAction?: (akkaserverless.component.IClientAction|null);

                /** ReplicatedEntityReply sideEffects. */
                public sideEffects: akkaserverless.component.ISideEffect[];

                /** ReplicatedEntityReply stateAction. */
                public stateAction?: (akkaserverless.component.replicatedentity.IReplicatedEntityStateAction|null);

                /**
                 * Creates a new ReplicatedEntityReply instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedEntityReply instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityReply): akkaserverless.component.replicatedentity.ReplicatedEntityReply;

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

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

                /**
                 * Decodes a ReplicatedEntityReply message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedEntityReply
                 * @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): akkaserverless.component.replicatedentity.ReplicatedEntityReply;

                /**
                 * Decodes a ReplicatedEntityReply message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedEntityReply
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedEntityReply;

                /**
                 * Verifies a ReplicatedEntityReply message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedEntityReply message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedEntityReply
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedEntityReply;

                /**
                 * Creates a plain object from a ReplicatedEntityReply message. Also converts values to other types if specified.
                 * @param message ReplicatedEntityReply
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedEntityReply, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedEntityReply to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReplicatedEntityStateAction. */
            interface IReplicatedEntityStateAction {

                /** ReplicatedEntityStateAction update */
                update?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelta|null);

                /** ReplicatedEntityStateAction delete */
                "delete"?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelete|null);
            }

            /** Represents a ReplicatedEntityStateAction. */
            class ReplicatedEntityStateAction implements IReplicatedEntityStateAction {

                /**
                 * Constructs a new ReplicatedEntityStateAction.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityStateAction);

                /** ReplicatedEntityStateAction update. */
                public update?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelta|null);

                /** ReplicatedEntityStateAction delete. */
                public delete?: (akkaserverless.component.replicatedentity.IReplicatedEntityDelete|null);

                /** ReplicatedEntityStateAction action. */
                public action?: ("update"|"delete");

                /**
                 * Creates a new ReplicatedEntityStateAction instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReplicatedEntityStateAction instance
                 */
                public static create(properties?: akkaserverless.component.replicatedentity.IReplicatedEntityStateAction): akkaserverless.component.replicatedentity.ReplicatedEntityStateAction;

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

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

                /**
                 * Decodes a ReplicatedEntityStateAction message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReplicatedEntityStateAction
                 * @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): akkaserverless.component.replicatedentity.ReplicatedEntityStateAction;

                /**
                 * Decodes a ReplicatedEntityStateAction message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReplicatedEntityStateAction
                 * @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)): akkaserverless.component.replicatedentity.ReplicatedEntityStateAction;

                /**
                 * Verifies a ReplicatedEntityStateAction message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReplicatedEntityStateAction message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReplicatedEntityStateAction
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.replicatedentity.ReplicatedEntityStateAction;

                /**
                 * Creates a plain object from a ReplicatedEntityStateAction message. Also converts values to other types if specified.
                 * @param message ReplicatedEntityStateAction
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.replicatedentity.ReplicatedEntityStateAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReplicatedEntityStateAction to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** ReplicatedEntityClock enum. */
            enum ReplicatedEntityClock {
                REPLICATED_ENTITY_CLOCK_DEFAULT_UNSPECIFIED = 0,
                REPLICATED_ENTITY_CLOCK_REVERSE = 1,
                REPLICATED_ENTITY_CLOCK_CUSTOM = 2,
                REPLICATED_ENTITY_CLOCK_CUSTOM_AUTO_INCREMENT = 3
            }
        }

        /** Namespace valueentity. */
        namespace valueentity {

            /** Represents a ValueEntities */
            class ValueEntities extends $protobuf.rpc.Service {

                /**
                 * Constructs a new ValueEntities service.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 */
                constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                /**
                 * Creates new ValueEntities service using the specified rpc implementation.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 * @returns RPC service. Useful where requests and/or responses are streamed.
                 */
                public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): ValueEntities;

                /**
                 * Calls Handle.
                 * @param request ValueEntityStreamIn message or plain object
                 * @param callback Node-style callback called with the error, if any, and ValueEntityStreamOut
                 */
                public handle(request: akkaserverless.component.valueentity.IValueEntityStreamIn, callback: akkaserverless.component.valueentity.ValueEntities.HandleCallback): void;

                /**
                 * Calls Handle.
                 * @param request ValueEntityStreamIn message or plain object
                 * @returns Promise
                 */
                public handle(request: akkaserverless.component.valueentity.IValueEntityStreamIn): Promise<akkaserverless.component.valueentity.ValueEntityStreamOut>;
            }

            namespace ValueEntities {

                /**
                 * Callback as used by {@link akkaserverless.component.valueentity.ValueEntities#handle}.
                 * @param error Error, if any
                 * @param [response] ValueEntityStreamOut
                 */
                type HandleCallback = (error: (Error|null), response?: akkaserverless.component.valueentity.ValueEntityStreamOut) => void;
            }

            /** Properties of a ValueEntityStreamIn. */
            interface IValueEntityStreamIn {

                /** ValueEntityStreamIn init */
                init?: (akkaserverless.component.valueentity.IValueEntityInit|null);

                /** ValueEntityStreamIn command */
                command?: (akkaserverless.component.entity.ICommand|null);
            }

            /** Represents a ValueEntityStreamIn. */
            class ValueEntityStreamIn implements IValueEntityStreamIn {

                /**
                 * Constructs a new ValueEntityStreamIn.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.valueentity.IValueEntityStreamIn);

                /** ValueEntityStreamIn init. */
                public init?: (akkaserverless.component.valueentity.IValueEntityInit|null);

                /** ValueEntityStreamIn command. */
                public command?: (akkaserverless.component.entity.ICommand|null);

                /** ValueEntityStreamIn message. */
                public message?: ("init"|"command");

                /**
                 * Creates a new ValueEntityStreamIn instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ValueEntityStreamIn instance
                 */
                public static create(properties?: akkaserverless.component.valueentity.IValueEntityStreamIn): akkaserverless.component.valueentity.ValueEntityStreamIn;

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

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

                /**
                 * Decodes a ValueEntityStreamIn message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ValueEntityStreamIn
                 * @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): akkaserverless.component.valueentity.ValueEntityStreamIn;

                /**
                 * Decodes a ValueEntityStreamIn message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ValueEntityStreamIn
                 * @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)): akkaserverless.component.valueentity.ValueEntityStreamIn;

                /**
                 * Verifies a ValueEntityStreamIn message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ValueEntityStreamIn message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ValueEntityStreamIn
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.valueentity.ValueEntityStreamIn;

                /**
                 * Creates a plain object from a ValueEntityStreamIn message. Also converts values to other types if specified.
                 * @param message ValueEntityStreamIn
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.valueentity.ValueEntityStreamIn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ValueEntityStreamIn to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ValueEntityInit. */
            interface IValueEntityInit {

                /** ValueEntityInit serviceName */
                serviceName?: (string|null);

                /** ValueEntityInit entityId */
                entityId?: (string|null);

                /** ValueEntityInit state */
                state?: (akkaserverless.component.valueentity.IValueEntityInitState|null);
            }

            /** Represents a ValueEntityInit. */
            class ValueEntityInit implements IValueEntityInit {

                /**
                 * Constructs a new ValueEntityInit.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.valueentity.IValueEntityInit);

                /** ValueEntityInit serviceName. */
                public serviceName: string;

                /** ValueEntityInit entityId. */
                public entityId: string;

                /** ValueEntityInit state. */
                public state?: (akkaserverless.component.valueentity.IValueEntityInitState|null);

                /**
                 * Creates a new ValueEntityInit instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ValueEntityInit instance
                 */
                public static create(properties?: akkaserverless.component.valueentity.IValueEntityInit): akkaserverless.component.valueentity.ValueEntityInit;

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

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

                /**
                 * Decodes a ValueEntityInit message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ValueEntityInit
                 * @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): akkaserverless.component.valueentity.ValueEntityInit;

                /**
                 * Decodes a ValueEntityInit message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ValueEntityInit
                 * @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)): akkaserverless.component.valueentity.ValueEntityInit;

                /**
                 * Verifies a ValueEntityInit message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ValueEntityInit message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ValueEntityInit
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.valueentity.ValueEntityInit;

                /**
                 * Creates a plain object from a ValueEntityInit message. Also converts values to other types if specified.
                 * @param message ValueEntityInit
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.valueentity.ValueEntityInit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ValueEntityInit to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ValueEntityInitState. */
            interface IValueEntityInitState {

                /** ValueEntityInitState value */
                value?: (google.protobuf.IAny|null);
            }

            /** Represents a ValueEntityInitState. */
            class ValueEntityInitState implements IValueEntityInitState {

                /**
                 * Constructs a new ValueEntityInitState.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.valueentity.IValueEntityInitState);

                /** ValueEntityInitState value. */
                public value?: (google.protobuf.IAny|null);

                /**
                 * Creates a new ValueEntityInitState instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ValueEntityInitState instance
                 */
                public static create(properties?: akkaserverless.component.valueentity.IValueEntityInitState): akkaserverless.component.valueentity.ValueEntityInitState;

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

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

                /**
                 * Decodes a ValueEntityInitState message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ValueEntityInitState
                 * @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): akkaserverless.component.valueentity.ValueEntityInitState;

                /**
                 * Decodes a ValueEntityInitState message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ValueEntityInitState
                 * @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)): akkaserverless.component.valueentity.ValueEntityInitState;

                /**
                 * Verifies a ValueEntityInitState message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ValueEntityInitState message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ValueEntityInitState
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.valueentity.ValueEntityInitState;

                /**
                 * Creates a plain object from a ValueEntityInitState message. Also converts values to other types if specified.
                 * @param message ValueEntityInitState
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.valueentity.ValueEntityInitState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ValueEntityInitState to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ValueEntityStreamOut. */
            interface IValueEntityStreamOut {

                /** ValueEntityStreamOut reply */
                reply?: (akkaserverless.component.valueentity.IValueEntityReply|null);

                /** ValueEntityStreamOut failure */
                failure?: (akkaserverless.component.IFailure|null);
            }

            /** Represents a ValueEntityStreamOut. */
            class ValueEntityStreamOut implements IValueEntityStreamOut {

                /**
                 * Constructs a new ValueEntityStreamOut.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.valueentity.IValueEntityStreamOut);

                /** ValueEntityStreamOut reply. */
                public reply?: (akkaserverless.component.valueentity.IValueEntityReply|null);

                /** ValueEntityStreamOut failure. */
                public failure?: (akkaserverless.component.IFailure|null);

                /** ValueEntityStreamOut message. */
                public message?: ("reply"|"failure");

                /**
                 * Creates a new ValueEntityStreamOut instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ValueEntityStreamOut instance
                 */
                public static create(properties?: akkaserverless.component.valueentity.IValueEntityStreamOut): akkaserverless.component.valueentity.ValueEntityStreamOut;

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

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

                /**
                 * Decodes a ValueEntityStreamOut message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ValueEntityStreamOut
                 * @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): akkaserverless.component.valueentity.ValueEntityStreamOut;

                /**
                 * Decodes a ValueEntityStreamOut message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ValueEntityStreamOut
                 * @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)): akkaserverless.component.valueentity.ValueEntityStreamOut;

                /**
                 * Verifies a ValueEntityStreamOut message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ValueEntityStreamOut message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ValueEntityStreamOut
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.valueentity.ValueEntityStreamOut;

                /**
                 * Creates a plain object from a ValueEntityStreamOut message. Also converts values to other types if specified.
                 * @param message ValueEntityStreamOut
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.valueentity.ValueEntityStreamOut, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ValueEntityStreamOut to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ValueEntityReply. */
            interface IValueEntityReply {

                /** ValueEntityReply commandId */
                commandId?: (number|Long|null);

                /** ValueEntityReply clientAction */
                clientAction?: (akkaserverless.component.IClientAction|null);

                /** ValueEntityReply sideEffects */
                sideEffects?: (akkaserverless.component.ISideEffect[]|null);

                /** ValueEntityReply stateAction */
                stateAction?: (akkaserverless.component.valueentity.IValueEntityAction|null);
            }

            /** Represents a ValueEntityReply. */
            class ValueEntityReply implements IValueEntityReply {

                /**
                 * Constructs a new ValueEntityReply.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.valueentity.IValueEntityReply);

                /** ValueEntityReply commandId. */
                public commandId: (number|Long);

                /** ValueEntityReply clientAction. */
                public clientAction?: (akkaserverless.component.IClientAction|null);

                /** ValueEntityReply sideEffects. */
                public sideEffects: akkaserverless.component.ISideEffect[];

                /** ValueEntityReply stateAction. */
                public stateAction?: (akkaserverless.component.valueentity.IValueEntityAction|null);

                /**
                 * Creates a new ValueEntityReply instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ValueEntityReply instance
                 */
                public static create(properties?: akkaserverless.component.valueentity.IValueEntityReply): akkaserverless.component.valueentity.ValueEntityReply;

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

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

                /**
                 * Decodes a ValueEntityReply message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ValueEntityReply
                 * @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): akkaserverless.component.valueentity.ValueEntityReply;

                /**
                 * Decodes a ValueEntityReply message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ValueEntityReply
                 * @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)): akkaserverless.component.valueentity.ValueEntityReply;

                /**
                 * Verifies a ValueEntityReply message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ValueEntityReply message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ValueEntityReply
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.valueentity.ValueEntityReply;

                /**
                 * Creates a plain object from a ValueEntityReply message. Also converts values to other types if specified.
                 * @param message ValueEntityReply
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.valueentity.ValueEntityReply, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ValueEntityReply to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ValueEntityAction. */
            interface IValueEntityAction {

                /** ValueEntityAction update */
                update?: (akkaserverless.component.valueentity.IValueEntityUpdate|null);

                /** ValueEntityAction delete */
                "delete"?: (akkaserverless.component.valueentity.IValueEntityDelete|null);
            }

            /** Represents a ValueEntityAction. */
            class ValueEntityAction implements IValueEntityAction {

                /**
                 * Constructs a new ValueEntityAction.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.valueentity.IValueEntityAction);

                /** ValueEntityAction update. */
                public update?: (akkaserverless.component.valueentity.IValueEntityUpdate|null);

                /** ValueEntityAction delete. */
                public delete?: (akkaserverless.component.valueentity.IValueEntityDelete|null);

                /** ValueEntityAction action. */
                public action?: ("update"|"delete");

                /**
                 * Creates a new ValueEntityAction instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ValueEntityAction instance
                 */
                public static create(properties?: akkaserverless.component.valueentity.IValueEntityAction): akkaserverless.component.valueentity.ValueEntityAction;

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

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

                /**
                 * Decodes a ValueEntityAction message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ValueEntityAction
                 * @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): akkaserverless.component.valueentity.ValueEntityAction;

                /**
                 * Decodes a ValueEntityAction message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ValueEntityAction
                 * @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)): akkaserverless.component.valueentity.ValueEntityAction;

                /**
                 * Verifies a ValueEntityAction message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ValueEntityAction message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ValueEntityAction
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.valueentity.ValueEntityAction;

                /**
                 * Creates a plain object from a ValueEntityAction message. Also converts values to other types if specified.
                 * @param message ValueEntityAction
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.valueentity.ValueEntityAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ValueEntityAction to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ValueEntityUpdate. */
            interface IValueEntityUpdate {

                /** ValueEntityUpdate value */
                value?: (google.protobuf.IAny|null);
            }

            /** Represents a ValueEntityUpdate. */
            class ValueEntityUpdate implements IValueEntityUpdate {

                /**
                 * Constructs a new ValueEntityUpdate.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.valueentity.IValueEntityUpdate);

                /** ValueEntityUpdate value. */
                public value?: (google.protobuf.IAny|null);

                /**
                 * Creates a new ValueEntityUpdate instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ValueEntityUpdate instance
                 */
                public static create(properties?: akkaserverless.component.valueentity.IValueEntityUpdate): akkaserverless.component.valueentity.ValueEntityUpdate;

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

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

                /**
                 * Decodes a ValueEntityUpdate message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ValueEntityUpdate
                 * @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): akkaserverless.component.valueentity.ValueEntityUpdate;

                /**
                 * Decodes a ValueEntityUpdate message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ValueEntityUpdate
                 * @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)): akkaserverless.component.valueentity.ValueEntityUpdate;

                /**
                 * Verifies a ValueEntityUpdate message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ValueEntityUpdate message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ValueEntityUpdate
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.valueentity.ValueEntityUpdate;

                /**
                 * Creates a plain object from a ValueEntityUpdate message. Also converts values to other types if specified.
                 * @param message ValueEntityUpdate
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.valueentity.ValueEntityUpdate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ValueEntityUpdate to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ValueEntityDelete. */
            interface IValueEntityDelete {
            }

            /** Represents a ValueEntityDelete. */
            class ValueEntityDelete implements IValueEntityDelete {

                /**
                 * Constructs a new ValueEntityDelete.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.valueentity.IValueEntityDelete);

                /**
                 * Creates a new ValueEntityDelete instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ValueEntityDelete instance
                 */
                public static create(properties?: akkaserverless.component.valueentity.IValueEntityDelete): akkaserverless.component.valueentity.ValueEntityDelete;

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

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

                /**
                 * Decodes a ValueEntityDelete message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ValueEntityDelete
                 * @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): akkaserverless.component.valueentity.ValueEntityDelete;

                /**
                 * Decodes a ValueEntityDelete message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ValueEntityDelete
                 * @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)): akkaserverless.component.valueentity.ValueEntityDelete;

                /**
                 * Verifies a ValueEntityDelete message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ValueEntityDelete message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ValueEntityDelete
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.valueentity.ValueEntityDelete;

                /**
                 * Creates a plain object from a ValueEntityDelete message. Also converts values to other types if specified.
                 * @param message ValueEntityDelete
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.valueentity.ValueEntityDelete, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ValueEntityDelete to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Namespace view. */
        namespace view {

            /** Represents a Views */
            class Views extends $protobuf.rpc.Service {

                /**
                 * Constructs a new Views service.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 */
                constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                /**
                 * Creates new Views service using the specified rpc implementation.
                 * @param rpcImpl RPC implementation
                 * @param [requestDelimited=false] Whether requests are length-delimited
                 * @param [responseDelimited=false] Whether responses are length-delimited
                 * @returns RPC service. Useful where requests and/or responses are streamed.
                 */
                public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Views;

                /**
                 * Calls Handle.
                 * @param request ViewStreamIn message or plain object
                 * @param callback Node-style callback called with the error, if any, and ViewStreamOut
                 */
                public handle(request: akkaserverless.component.view.IViewStreamIn, callback: akkaserverless.component.view.Views.HandleCallback): void;

                /**
                 * Calls Handle.
                 * @param request ViewStreamIn message or plain object
                 * @returns Promise
                 */
                public handle(request: akkaserverless.component.view.IViewStreamIn): Promise<akkaserverless.component.view.ViewStreamOut>;
            }

            namespace Views {

                /**
                 * Callback as used by {@link akkaserverless.component.view.Views#handle}.
                 * @param error Error, if any
                 * @param [response] ViewStreamOut
                 */
                type HandleCallback = (error: (Error|null), response?: akkaserverless.component.view.ViewStreamOut) => void;
            }

            /** Properties of a ViewStreamIn. */
            interface IViewStreamIn {

                /** ViewStreamIn receive */
                receive?: (akkaserverless.component.view.IReceiveEvent|null);
            }

            /** Represents a ViewStreamIn. */
            class ViewStreamIn implements IViewStreamIn {

                /**
                 * Constructs a new ViewStreamIn.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.view.IViewStreamIn);

                /** ViewStreamIn receive. */
                public receive?: (akkaserverless.component.view.IReceiveEvent|null);

                /** ViewStreamIn message. */
                public message?: "receive";

                /**
                 * Creates a new ViewStreamIn instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ViewStreamIn instance
                 */
                public static create(properties?: akkaserverless.component.view.IViewStreamIn): akkaserverless.component.view.ViewStreamIn;

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

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

                /**
                 * Decodes a ViewStreamIn message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ViewStreamIn
                 * @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): akkaserverless.component.view.ViewStreamIn;

                /**
                 * Decodes a ViewStreamIn message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ViewStreamIn
                 * @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)): akkaserverless.component.view.ViewStreamIn;

                /**
                 * Verifies a ViewStreamIn message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ViewStreamIn message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ViewStreamIn
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.view.ViewStreamIn;

                /**
                 * Creates a plain object from a ViewStreamIn message. Also converts values to other types if specified.
                 * @param message ViewStreamIn
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.view.ViewStreamIn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ViewStreamIn to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReceiveEvent. */
            interface IReceiveEvent {

                /** ReceiveEvent serviceName */
                serviceName?: (string|null);

                /** ReceiveEvent commandName */
                commandName?: (string|null);

                /** ReceiveEvent payload */
                payload?: (google.protobuf.IAny|null);

                /** ReceiveEvent metadata */
                metadata?: (akkaserverless.component.IMetadata|null);

                /** ReceiveEvent initialTable */
                initialTable?: (string|null);

                /** ReceiveEvent key */
                key?: (akkaserverless.component.view.IKey|null);

                /** ReceiveEvent bySubjectLookupResult */
                bySubjectLookupResult?: (akkaserverless.component.view.IRow|null);
            }

            /** Represents a ReceiveEvent. */
            class ReceiveEvent implements IReceiveEvent {

                /**
                 * Constructs a new ReceiveEvent.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.view.IReceiveEvent);

                /** ReceiveEvent serviceName. */
                public serviceName: string;

                /** ReceiveEvent commandName. */
                public commandName: string;

                /** ReceiveEvent payload. */
                public payload?: (google.protobuf.IAny|null);

                /** ReceiveEvent metadata. */
                public metadata?: (akkaserverless.component.IMetadata|null);

                /** ReceiveEvent initialTable. */
                public initialTable: string;

                /** ReceiveEvent key. */
                public key?: (akkaserverless.component.view.IKey|null);

                /** ReceiveEvent bySubjectLookupResult. */
                public bySubjectLookupResult?: (akkaserverless.component.view.IRow|null);

                /**
                 * Creates a new ReceiveEvent instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReceiveEvent instance
                 */
                public static create(properties?: akkaserverless.component.view.IReceiveEvent): akkaserverless.component.view.ReceiveEvent;

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

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

                /**
                 * Decodes a ReceiveEvent message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReceiveEvent
                 * @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): akkaserverless.component.view.ReceiveEvent;

                /**
                 * Decodes a ReceiveEvent message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReceiveEvent
                 * @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)): akkaserverless.component.view.ReceiveEvent;

                /**
                 * Verifies a ReceiveEvent message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReceiveEvent message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReceiveEvent
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.view.ReceiveEvent;

                /**
                 * Creates a plain object from a ReceiveEvent message. Also converts values to other types if specified.
                 * @param message ReceiveEvent
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.view.ReceiveEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReceiveEvent to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ViewStreamOut. */
            interface IViewStreamOut {

                /** ViewStreamOut upsert */
                upsert?: (akkaserverless.component.view.IUpsert|null);
            }

            /** Represents a ViewStreamOut. */
            class ViewStreamOut implements IViewStreamOut {

                /**
                 * Constructs a new ViewStreamOut.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.view.IViewStreamOut);

                /** ViewStreamOut upsert. */
                public upsert?: (akkaserverless.component.view.IUpsert|null);

                /** ViewStreamOut message. */
                public message?: "upsert";

                /**
                 * Creates a new ViewStreamOut instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ViewStreamOut instance
                 */
                public static create(properties?: akkaserverless.component.view.IViewStreamOut): akkaserverless.component.view.ViewStreamOut;

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

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

                /**
                 * Decodes a ViewStreamOut message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ViewStreamOut
                 * @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): akkaserverless.component.view.ViewStreamOut;

                /**
                 * Decodes a ViewStreamOut message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ViewStreamOut
                 * @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)): akkaserverless.component.view.ViewStreamOut;

                /**
                 * Verifies a ViewStreamOut message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ViewStreamOut message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ViewStreamOut
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.view.ViewStreamOut;

                /**
                 * Creates a plain object from a ViewStreamOut message. Also converts values to other types if specified.
                 * @param message ViewStreamOut
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.view.ViewStreamOut, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ViewStreamOut to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an Upsert. */
            interface IUpsert {

                /** Upsert row */
                row?: (akkaserverless.component.view.IRow|null);
            }

            /** Represents an Upsert. */
            class Upsert implements IUpsert {

                /**
                 * Constructs a new Upsert.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.view.IUpsert);

                /** Upsert row. */
                public row?: (akkaserverless.component.view.IRow|null);

                /**
                 * Creates a new Upsert instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Upsert instance
                 */
                public static create(properties?: akkaserverless.component.view.IUpsert): akkaserverless.component.view.Upsert;

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

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

                /**
                 * Decodes an Upsert message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Upsert
                 * @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): akkaserverless.component.view.Upsert;

                /**
                 * Decodes an Upsert message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Upsert
                 * @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)): akkaserverless.component.view.Upsert;

                /**
                 * Verifies an Upsert message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an Upsert message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Upsert
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.view.Upsert;

                /**
                 * Creates a plain object from an Upsert message. Also converts values to other types if specified.
                 * @param message Upsert
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.view.Upsert, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Upsert to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a Key. */
            interface IKey {

                /** Key parts */
                parts?: (akkaserverless.component.view.IKeyPart[]|null);
            }

            /** Represents a Key. */
            class Key implements IKey {

                /**
                 * Constructs a new Key.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.view.IKey);

                /** Key parts. */
                public parts: akkaserverless.component.view.IKeyPart[];

                /**
                 * Creates a new Key instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Key instance
                 */
                public static create(properties?: akkaserverless.component.view.IKey): akkaserverless.component.view.Key;

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

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

                /**
                 * Decodes a Key message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Key
                 * @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): akkaserverless.component.view.Key;

                /**
                 * Decodes a Key message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Key
                 * @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)): akkaserverless.component.view.Key;

                /**
                 * Verifies a Key message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Key message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Key
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.view.Key;

                /**
                 * Creates a plain object from a Key message. Also converts values to other types if specified.
                 * @param message Key
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.view.Key, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Key to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a KeyPart. */
            interface IKeyPart {

                /** KeyPart stringPart */
                stringPart?: (string|null);

                /** KeyPart bytesPart */
                bytesPart?: (Uint8Array|null);

                /** KeyPart integerPart */
                integerPart?: (number|Long|null);

                /** KeyPart floatPart */
                floatPart?: (number|null);
            }

            /** Represents a KeyPart. */
            class KeyPart implements IKeyPart {

                /**
                 * Constructs a new KeyPart.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.view.IKeyPart);

                /** KeyPart stringPart. */
                public stringPart?: (string|null);

                /** KeyPart bytesPart. */
                public bytesPart?: (Uint8Array|null);

                /** KeyPart integerPart. */
                public integerPart?: (number|Long|null);

                /** KeyPart floatPart. */
                public floatPart?: (number|null);

                /** KeyPart part. */
                public part?: ("stringPart"|"bytesPart"|"integerPart"|"floatPart");

                /**
                 * Creates a new KeyPart instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns KeyPart instance
                 */
                public static create(properties?: akkaserverless.component.view.IKeyPart): akkaserverless.component.view.KeyPart;

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

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

                /**
                 * Decodes a KeyPart message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns KeyPart
                 * @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): akkaserverless.component.view.KeyPart;

                /**
                 * Decodes a KeyPart message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns KeyPart
                 * @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)): akkaserverless.component.view.KeyPart;

                /**
                 * Verifies a KeyPart message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a KeyPart message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns KeyPart
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.view.KeyPart;

                /**
                 * Creates a plain object from a KeyPart message. Also converts values to other types if specified.
                 * @param message KeyPart
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.view.KeyPart, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this KeyPart to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a Row. */
            interface IRow {

                /** Row index */
                index?: (string|null);

                /** Row key */
                key?: (akkaserverless.component.view.IKey|null);

                /** Row value */
                value?: (google.protobuf.IAny|null);
            }

            /** Represents a Row. */
            class Row implements IRow {

                /**
                 * Constructs a new Row.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: akkaserverless.component.view.IRow);

                /** Row index. */
                public index: string;

                /** Row key. */
                public key?: (akkaserverless.component.view.IKey|null);

                /** Row value. */
                public value?: (google.protobuf.IAny|null);

                /**
                 * Creates a new Row instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Row instance
                 */
                public static create(properties?: akkaserverless.component.view.IRow): akkaserverless.component.view.Row;

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

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

                /**
                 * Decodes a Row message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Row
                 * @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): akkaserverless.component.view.Row;

                /**
                 * Decodes a Row message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Row
                 * @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)): akkaserverless.component.view.Row;

                /**
                 * Verifies a Row message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Row message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Row
                 */
                public static fromObject(object: { [k: string]: any }): akkaserverless.component.view.Row;

                /**
                 * Creates a plain object from a Row message. Also converts values to other types if specified.
                 * @param message Row
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: akkaserverless.component.view.Row, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Row to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }
    }
}

/** Namespace google. */
export namespace google {

    /** Namespace protobuf. */
    namespace protobuf {

        /** Properties of a FileDescriptorSet. */
        interface IFileDescriptorSet {

            /** FileDescriptorSet file */
            file?: (google.protobuf.IFileDescriptorProto[]|null);
        }

        /** Represents a FileDescriptorSet. */
        class FileDescriptorSet implements IFileDescriptorSet {

            /**
             * Constructs a new FileDescriptorSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorSet);

            /** FileDescriptorSet file. */
            public file: google.protobuf.IFileDescriptorProto[];

            /**
             * Creates a new FileDescriptorSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorSet instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorSet): google.protobuf.FileDescriptorSet;

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

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

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorSet
             * @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): google.protobuf.FileDescriptorSet;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorSet
             * @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)): google.protobuf.FileDescriptorSet;

            /**
             * Verifies a FileDescriptorSet message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorSet;

            /**
             * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified.
             * @param message FileDescriptorSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a FileDescriptorProto. */
        interface IFileDescriptorProto {

            /** FileDescriptorProto name */
            name?: (string|null);

            /** FileDescriptorProto package */
            "package"?: (string|null);

            /** FileDescriptorProto dependency */
            dependency?: (string[]|null);

            /** FileDescriptorProto publicDependency */
            publicDependency?: (number[]|null);

            /** FileDescriptorProto weakDependency */
            weakDependency?: (number[]|null);

            /** FileDescriptorProto messageType */
            messageType?: (google.protobuf.IDescriptorProto[]|null);

            /** FileDescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** FileDescriptorProto service */
            service?: (google.protobuf.IServiceDescriptorProto[]|null);

            /** FileDescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** FileDescriptorProto options */
            options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo */
            sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax */
            syntax?: (string|null);
        }

        /** Represents a FileDescriptorProto. */
        class FileDescriptorProto implements IFileDescriptorProto {

            /**
             * Constructs a new FileDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorProto);

            /** FileDescriptorProto name. */
            public name: string;

            /** FileDescriptorProto package. */
            public package: string;

            /** FileDescriptorProto dependency. */
            public dependency: string[];

            /** FileDescriptorProto publicDependency. */
            public publicDependency: number[];

            /** FileDescriptorProto weakDependency. */
            public weakDependency: number[];

            /** FileDescriptorProto messageType. */
            public messageType: google.protobuf.IDescriptorProto[];

            /** FileDescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** FileDescriptorProto service. */
            public service: google.protobuf.IServiceDescriptorProto[];

            /** FileDescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** FileDescriptorProto options. */
            public options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo. */
            public sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax. */
            public syntax: string;

            /**
             * Creates a new FileDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorProto): google.protobuf.FileDescriptorProto;

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

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

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorProto
             * @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): google.protobuf.FileDescriptorProto;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorProto
             * @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)): google.protobuf.FileDescriptorProto;

            /**
             * Verifies a FileDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorProto;

            /**
             * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified.
             * @param message FileDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescriptorProto. */
        interface IDescriptorProto {

            /** DescriptorProto name */
            name?: (string|null);

            /** DescriptorProto field */
            field?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto nestedType */
            nestedType?: (google.protobuf.IDescriptorProto[]|null);

            /** DescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** DescriptorProto extensionRange */
            extensionRange?: (google.protobuf.DescriptorProto.IExtensionRange[]|null);

            /** DescriptorProto oneofDecl */
            oneofDecl?: (google.protobuf.IOneofDescriptorProto[]|null);

            /** DescriptorProto options */
            options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange */
            reservedRange?: (google.protobuf.DescriptorProto.IReservedRange[]|null);

            /** DescriptorProto reservedName */
            reservedName?: (string[]|null);
        }

        /** Represents a DescriptorProto. */
        class DescriptorProto implements IDescriptorProto {

            /**
             * Constructs a new DescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDescriptorProto);

            /** DescriptorProto name. */
            public name: string;

            /** DescriptorProto field. */
            public field: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto nestedType. */
            public nestedType: google.protobuf.IDescriptorProto[];

            /** DescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** DescriptorProto extensionRange. */
            public extensionRange: google.protobuf.DescriptorProto.IExtensionRange[];

            /** DescriptorProto oneofDecl. */
            public oneofDecl: google.protobuf.IOneofDescriptorProto[];

            /** DescriptorProto options. */
            public options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange. */
            public reservedRange: google.protobuf.DescriptorProto.IReservedRange[];

            /** DescriptorProto reservedName. */
            public reservedName: string[];

            /**
             * Creates a new DescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescriptorProto instance
             */
            public static create(properties?: google.protobuf.IDescriptorProto): google.protobuf.DescriptorProto;

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

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

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescriptorProto
             * @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): google.protobuf.DescriptorProto;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescriptorProto
             * @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)): google.protobuf.DescriptorProto;

            /**
             * Verifies a DescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto;

            /**
             * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified.
             * @param message DescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.DescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace DescriptorProto {

            /** Properties of an ExtensionRange. */
            interface IExtensionRange {

                /** ExtensionRange start */
                start?: (number|null);

                /** ExtensionRange end */
                end?: (number|null);

                /** ExtensionRange options */
                options?: (google.protobuf.IExtensionRangeOptions|null);
            }

            /** Represents an ExtensionRange. */
            class ExtensionRange implements IExtensionRange {

                /**
                 * Constructs a new ExtensionRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IExtensionRange);

                /** ExtensionRange start. */
                public start: number;

                /** ExtensionRange end. */
                public end: number;

                /** ExtensionRange options. */
                public options?: (google.protobuf.IExtensionRangeOptions|null);

                /**
                 * Creates a new ExtensionRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ExtensionRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IExtensionRange): google.protobuf.DescriptorProto.ExtensionRange;

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

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

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ExtensionRange
                 * @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): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ExtensionRange
                 * @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)): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Verifies an ExtensionRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ExtensionRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified.
                 * @param message ExtensionRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ExtensionRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ExtensionRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReservedRange. */
            interface IReservedRange {

                /** ReservedRange start */
                start?: (number|null);

                /** ReservedRange end */
                end?: (number|null);
            }

            /** Represents a ReservedRange. */
            class ReservedRange implements IReservedRange {

                /**
                 * Constructs a new ReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IReservedRange);

                /** ReservedRange start. */
                public start: number;

                /** ReservedRange end. */
                public end: number;

                /**
                 * Creates a new ReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReservedRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IReservedRange): google.protobuf.DescriptorProto.ReservedRange;

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

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

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReservedRange
                 * @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): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReservedRange
                 * @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)): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Verifies a ReservedRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Creates a plain object from a ReservedRange message. Also converts values to other types if specified.
                 * @param message ReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of an ExtensionRangeOptions. */
        interface IExtensionRangeOptions {

            /** ExtensionRangeOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an ExtensionRangeOptions. */
        class ExtensionRangeOptions implements IExtensionRangeOptions {

            /**
             * Constructs a new ExtensionRangeOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IExtensionRangeOptions);

            /** ExtensionRangeOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new ExtensionRangeOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExtensionRangeOptions instance
             */
            public static create(properties?: google.protobuf.IExtensionRangeOptions): google.protobuf.ExtensionRangeOptions;

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

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

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExtensionRangeOptions
             * @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): google.protobuf.ExtensionRangeOptions;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExtensionRangeOptions
             * @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)): google.protobuf.ExtensionRangeOptions;

            /**
             * Verifies an ExtensionRangeOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExtensionRangeOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions;

            /**
             * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified.
             * @param message ExtensionRangeOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ExtensionRangeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExtensionRangeOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a FieldDescriptorProto. */
        interface IFieldDescriptorProto {

            /** FieldDescriptorProto name */
            name?: (string|null);

            /** FieldDescriptorProto number */
            number?: (number|null);

            /** FieldDescriptorProto label */
            label?: (google.protobuf.FieldDescriptorProto.Label|null);

            /** FieldDescriptorProto type */
            type?: (google.protobuf.FieldDescriptorProto.Type|null);

            /** FieldDescriptorProto typeName */
            typeName?: (string|null);

            /** FieldDescriptorProto extendee */
            extendee?: (string|null);

            /** FieldDescriptorProto defaultValue */
            defaultValue?: (string|null);

            /** FieldDescriptorProto oneofIndex */
            oneofIndex?: (number|null);

            /** FieldDescriptorProto jsonName */
            jsonName?: (string|null);

            /** FieldDescriptorProto options */
            options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional */
            proto3Optional?: (boolean|null);
        }

        /** Represents a FieldDescriptorProto. */
        class FieldDescriptorProto implements IFieldDescriptorProto {

            /**
             * Constructs a new FieldDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldDescriptorProto);

            /** FieldDescriptorProto name. */
            public name: string;

            /** FieldDescriptorProto number. */
            public number: number;

            /** FieldDescriptorProto label. */
            public label: google.protobuf.FieldDescriptorProto.Label;

            /** FieldDescriptorProto type. */
            public type: google.protobuf.FieldDescriptorProto.Type;

            /** FieldDescriptorProto typeName. */
            public typeName: string;

            /** FieldDescriptorProto extendee. */
            public extendee: string;

            /** FieldDescriptorProto defaultValue. */
            public defaultValue: string;

            /** FieldDescriptorProto oneofIndex. */
            public oneofIndex: number;

            /** FieldDescriptorProto jsonName. */
            public jsonName: string;

            /** FieldDescriptorProto options. */
            public options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional. */
            public proto3Optional: boolean;

            /**
             * Creates a new FieldDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFieldDescriptorProto): google.protobuf.FieldDescriptorProto;

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

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

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldDescriptorProto
             * @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): google.protobuf.FieldDescriptorProto;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldDescriptorProto
             * @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)): google.protobuf.FieldDescriptorProto;

            /**
             * Verifies a FieldDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldDescriptorProto;

            /**
             * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified.
             * @param message FieldDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace FieldDescriptorProto {

            /** Type enum. */
            enum Type {
                TYPE_DOUBLE = 1,
                TYPE_FLOAT = 2,
                TYPE_INT64 = 3,
                TYPE_UINT64 = 4,
                TYPE_INT32 = 5,
                TYPE_FIXED64 = 6,
                TYPE_FIXED32 = 7,
                TYPE_BOOL = 8,
                TYPE_STRING = 9,
                TYPE_GROUP = 10,
                TYPE_MESSAGE = 11,
                TYPE_BYTES = 12,
                TYPE_UINT32 = 13,
                TYPE_ENUM = 14,
                TYPE_SFIXED32 = 15,
                TYPE_SFIXED64 = 16,
                TYPE_SINT32 = 17,
                TYPE_SINT64 = 18
            }

            /** Label enum. */
            enum Label {
                LABEL_OPTIONAL = 1,
                LABEL_REQUIRED = 2,
                LABEL_REPEATED = 3
            }
        }

        /** Properties of an OneofDescriptorProto. */
        interface IOneofDescriptorProto {

            /** OneofDescriptorProto name */
            name?: (string|null);

            /** OneofDescriptorProto options */
            options?: (google.protobuf.IOneofOptions|null);
        }

        /** Represents an OneofDescriptorProto. */
        class OneofDescriptorProto implements IOneofDescriptorProto {

            /**
             * Constructs a new OneofDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofDescriptorProto);

            /** OneofDescriptorProto name. */
            public name: string;

            /** OneofDescriptorProto options. */
            public options?: (google.protobuf.IOneofOptions|null);

            /**
             * Creates a new OneofDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IOneofDescriptorProto): google.protobuf.OneofDescriptorProto;

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

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

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofDescriptorProto
             * @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): google.protobuf.OneofDescriptorProto;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofDescriptorProto
             * @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)): google.protobuf.OneofDescriptorProto;

            /**
             * Verifies an OneofDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofDescriptorProto;

            /**
             * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified.
             * @param message OneofDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an EnumDescriptorProto. */
        interface IEnumDescriptorProto {

            /** EnumDescriptorProto name */
            name?: (string|null);

            /** EnumDescriptorProto value */
            value?: (google.protobuf.IEnumValueDescriptorProto[]|null);

            /** EnumDescriptorProto options */
            options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange */
            reservedRange?: (google.protobuf.EnumDescriptorProto.IEnumReservedRange[]|null);

            /** EnumDescriptorProto reservedName */
            reservedName?: (string[]|null);
        }

        /** Represents an EnumDescriptorProto. */
        class EnumDescriptorProto implements IEnumDescriptorProto {

            /**
             * Constructs a new EnumDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumDescriptorProto);

            /** EnumDescriptorProto name. */
            public name: string;

            /** EnumDescriptorProto value. */
            public value: google.protobuf.IEnumValueDescriptorProto[];

            /** EnumDescriptorProto options. */
            public options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange. */
            public reservedRange: google.protobuf.EnumDescriptorProto.IEnumReservedRange[];

            /** EnumDescriptorProto reservedName. */
            public reservedName: string[];

            /**
             * Creates a new EnumDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumDescriptorProto): google.protobuf.EnumDescriptorProto;

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

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

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumDescriptorProto
             * @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): google.protobuf.EnumDescriptorProto;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumDescriptorProto
             * @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)): google.protobuf.EnumDescriptorProto;

            /**
             * Verifies an EnumDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto;

            /**
             * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace EnumDescriptorProto {

            /** Properties of an EnumReservedRange. */
            interface IEnumReservedRange {

                /** EnumReservedRange start */
                start?: (number|null);

                /** EnumReservedRange end */
                end?: (number|null);
            }

            /** Represents an EnumReservedRange. */
            class EnumReservedRange implements IEnumReservedRange {

                /**
                 * Constructs a new EnumReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange);

                /** EnumReservedRange start. */
                public start: number;

                /** EnumReservedRange end. */
                public end: number;

                /**
                 * Creates a new EnumReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EnumReservedRange instance
                 */
                public static create(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange): google.protobuf.EnumDescriptorProto.EnumReservedRange;

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

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

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EnumReservedRange
                 * @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): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EnumReservedRange
                 * @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)): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Verifies an EnumReservedRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EnumReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified.
                 * @param message EnumReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.EnumDescriptorProto.EnumReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EnumReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of an EnumValueDescriptorProto. */
        interface IEnumValueDescriptorProto {

            /** EnumValueDescriptorProto name */
            name?: (string|null);

            /** EnumValueDescriptorProto number */
            number?: (number|null);

            /** EnumValueDescriptorProto options */
            options?: (google.protobuf.IEnumValueOptions|null);
        }

        /** Represents an EnumValueDescriptorProto. */
        class EnumValueDescriptorProto implements IEnumValueDescriptorProto {

            /**
             * Constructs a new EnumValueDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueDescriptorProto);

            /** EnumValueDescriptorProto name. */
            public name: string;

            /** EnumValueDescriptorProto number. */
            public number: number;

            /** EnumValueDescriptorProto options. */
            public options?: (google.protobuf.IEnumValueOptions|null);

            /**
             * Creates a new EnumValueDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumValueDescriptorProto): google.protobuf.EnumValueDescriptorProto;

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

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

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueDescriptorProto
             * @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): google.protobuf.EnumValueDescriptorProto;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueDescriptorProto
             * @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)): google.protobuf.EnumValueDescriptorProto;

            /**
             * Verifies an EnumValueDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueDescriptorProto;

            /**
             * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumValueDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ServiceDescriptorProto. */
        interface IServiceDescriptorProto {

            /** ServiceDescriptorProto name */
            name?: (string|null);

            /** ServiceDescriptorProto method */
            method?: (google.protobuf.IMethodDescriptorProto[]|null);

            /** ServiceDescriptorProto options */
            options?: (google.protobuf.IServiceOptions|null);
        }

        /** Represents a ServiceDescriptorProto. */
        class ServiceDescriptorProto implements IServiceDescriptorProto {

            /**
             * Constructs a new ServiceDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceDescriptorProto);

            /** ServiceDescriptorProto name. */
            public name: string;

            /** ServiceDescriptorProto method. */
            public method: google.protobuf.IMethodDescriptorProto[];

            /** ServiceDescriptorProto options. */
            public options?: (google.protobuf.IServiceOptions|null);

            /**
             * Creates a new ServiceDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IServiceDescriptorProto): google.protobuf.ServiceDescriptorProto;

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

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

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceDescriptorProto
             * @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): google.protobuf.ServiceDescriptorProto;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceDescriptorProto
             * @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)): google.protobuf.ServiceDescriptorProto;

            /**
             * Verifies a ServiceDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceDescriptorProto;

            /**
             * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified.
             * @param message ServiceDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a MethodDescriptorProto. */
        interface IMethodDescriptorProto {

            /** MethodDescriptorProto name */
            name?: (string|null);

            /** MethodDescriptorProto inputType */
            inputType?: (string|null);

            /** MethodDescriptorProto outputType */
            outputType?: (string|null);

            /** MethodDescriptorProto options */
            options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming */
            clientStreaming?: (boolean|null);

            /** MethodDescriptorProto serverStreaming */
            serverStreaming?: (boolean|null);
        }

        /** Represents a MethodDescriptorProto. */
        class MethodDescriptorProto implements IMethodDescriptorProto {

            /**
             * Constructs a new MethodDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodDescriptorProto);

            /** MethodDescriptorProto name. */
            public name: string;

            /** MethodDescriptorProto inputType. */
            public inputType: string;

            /** MethodDescriptorProto outputType. */
            public outputType: string;

            /** MethodDescriptorProto options. */
            public options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming. */
            public clientStreaming: boolean;

            /** MethodDescriptorProto serverStreaming. */
            public serverStreaming: boolean;

            /**
             * Creates a new MethodDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IMethodDescriptorProto): google.protobuf.MethodDescriptorProto;

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

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

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodDescriptorProto
             * @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): google.protobuf.MethodDescriptorProto;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodDescriptorProto
             * @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)): google.protobuf.MethodDescriptorProto;

            /**
             * Verifies a MethodDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodDescriptorProto;

            /**
             * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified.
             * @param message MethodDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a FileOptions. */
        interface IFileOptions {

            /** FileOptions javaPackage */
            javaPackage?: (string|null);

            /** FileOptions javaOuterClassname */
            javaOuterClassname?: (string|null);

            /** FileOptions javaMultipleFiles */
            javaMultipleFiles?: (boolean|null);

            /** FileOptions javaGenerateEqualsAndHash */
            javaGenerateEqualsAndHash?: (boolean|null);

            /** FileOptions javaStringCheckUtf8 */
            javaStringCheckUtf8?: (boolean|null);

            /** FileOptions optimizeFor */
            optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|null);

            /** FileOptions goPackage */
            goPackage?: (string|null);

            /** FileOptions ccGenericServices */
            ccGenericServices?: (boolean|null);

            /** FileOptions javaGenericServices */
            javaGenericServices?: (boolean|null);

            /** FileOptions pyGenericServices */
            pyGenericServices?: (boolean|null);

            /** FileOptions phpGenericServices */
            phpGenericServices?: (boolean|null);

            /** FileOptions deprecated */
            deprecated?: (boolean|null);

            /** FileOptions ccEnableArenas */
            ccEnableArenas?: (boolean|null);

            /** FileOptions objcClassPrefix */
            objcClassPrefix?: (string|null);

            /** FileOptions csharpNamespace */
            csharpNamespace?: (string|null);

            /** FileOptions swiftPrefix */
            swiftPrefix?: (string|null);

            /** FileOptions phpClassPrefix */
            phpClassPrefix?: (string|null);

            /** FileOptions phpNamespace */
            phpNamespace?: (string|null);

            /** FileOptions phpMetadataNamespace */
            phpMetadataNamespace?: (string|null);

            /** FileOptions rubyPackage */
            rubyPackage?: (string|null);

            /** FileOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FileOptions .akkaserverless.file */
            ".akkaserverless.file"?: (akkaserverless.IFileOptions|null);
        }

        /** Represents a FileOptions. */
        class FileOptions implements IFileOptions {

            /**
             * Constructs a new FileOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileOptions);

            /** FileOptions javaPackage. */
            public javaPackage: string;

            /** FileOptions javaOuterClassname. */
            public javaOuterClassname: string;

            /** FileOptions javaMultipleFiles. */
            public javaMultipleFiles: boolean;

            /** FileOptions javaGenerateEqualsAndHash. */
            public javaGenerateEqualsAndHash: boolean;

            /** FileOptions javaStringCheckUtf8. */
            public javaStringCheckUtf8: boolean;

            /** FileOptions optimizeFor. */
            public optimizeFor: google.protobuf.FileOptions.OptimizeMode;

            /** FileOptions goPackage. */
            public goPackage: string;

            /** FileOptions ccGenericServices. */
            public ccGenericServices: boolean;

            /** FileOptions javaGenericServices. */
            public javaGenericServices: boolean;

            /** FileOptions pyGenericServices. */
            public pyGenericServices: boolean;

            /** FileOptions phpGenericServices. */
            public phpGenericServices: boolean;

            /** FileOptions deprecated. */
            public deprecated: boolean;

            /** FileOptions ccEnableArenas. */
            public ccEnableArenas: boolean;

            /** FileOptions objcClassPrefix. */
            public objcClassPrefix: string;

            /** FileOptions csharpNamespace. */
            public csharpNamespace: string;

            /** FileOptions swiftPrefix. */
            public swiftPrefix: string;

            /** FileOptions phpClassPrefix. */
            public phpClassPrefix: string;

            /** FileOptions phpNamespace. */
            public phpNamespace: string;

            /** FileOptions phpMetadataNamespace. */
            public phpMetadataNamespace: string;

            /** FileOptions rubyPackage. */
            public rubyPackage: string;

            /** FileOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FileOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileOptions instance
             */
            public static create(properties?: google.protobuf.IFileOptions): google.protobuf.FileOptions;

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

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

            /**
             * Decodes a FileOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileOptions
             * @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): google.protobuf.FileOptions;

            /**
             * Decodes a FileOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileOptions
             * @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)): google.protobuf.FileOptions;

            /**
             * Verifies a FileOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileOptions;

            /**
             * Creates a plain object from a FileOptions message. Also converts values to other types if specified.
             * @param message FileOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace FileOptions {

            /** OptimizeMode enum. */
            enum OptimizeMode {
                SPEED = 1,
                CODE_SIZE = 2,
                LITE_RUNTIME = 3
            }
        }

        /** Properties of a MessageOptions. */
        interface IMessageOptions {

            /** MessageOptions messageSetWireFormat */
            messageSetWireFormat?: (boolean|null);

            /** MessageOptions noStandardDescriptorAccessor */
            noStandardDescriptorAccessor?: (boolean|null);

            /** MessageOptions deprecated */
            deprecated?: (boolean|null);

            /** MessageOptions mapEntry */
            mapEntry?: (boolean|null);

            /** MessageOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MessageOptions .akkaserverless.message */
            ".akkaserverless.message"?: (akkaserverless.IMessageOptions|null);
        }

        /** Represents a MessageOptions. */
        class MessageOptions implements IMessageOptions {

            /**
             * Constructs a new MessageOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMessageOptions);

            /** MessageOptions messageSetWireFormat. */
            public messageSetWireFormat: boolean;

            /** MessageOptions noStandardDescriptorAccessor. */
            public noStandardDescriptorAccessor: boolean;

            /** MessageOptions deprecated. */
            public deprecated: boolean;

            /** MessageOptions mapEntry. */
            public mapEntry: boolean;

            /** MessageOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MessageOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MessageOptions instance
             */
            public static create(properties?: google.protobuf.IMessageOptions): google.protobuf.MessageOptions;

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

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

            /**
             * Decodes a MessageOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MessageOptions
             * @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): google.protobuf.MessageOptions;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MessageOptions
             * @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)): google.protobuf.MessageOptions;

            /**
             * Verifies a MessageOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MessageOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MessageOptions;

            /**
             * Creates a plain object from a MessageOptions message. Also converts values to other types if specified.
             * @param message MessageOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MessageOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a FieldOptions. */
        interface IFieldOptions {

            /** FieldOptions ctype */
            ctype?: (google.protobuf.FieldOptions.CType|null);

            /** FieldOptions packed */
            packed?: (boolean|null);

            /** FieldOptions jstype */
            jstype?: (google.protobuf.FieldOptions.JSType|null);

            /** FieldOptions lazy */
            lazy?: (boolean|null);

            /** FieldOptions deprecated */
            deprecated?: (boolean|null);

            /** FieldOptions weak */
            weak?: (boolean|null);

            /** FieldOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FieldOptions .akkaserverless.field */
            ".akkaserverless.field"?: (akkaserverless.IFieldOptions|null);

            /** FieldOptions .akkaserverless.legacyEntityKey */
            ".akkaserverless.legacyEntityKey"?: (boolean|null);
        }

        /** Represents a FieldOptions. */
        class FieldOptions implements IFieldOptions {

            /**
             * Constructs a new FieldOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldOptions);

            /** FieldOptions ctype. */
            public ctype: google.protobuf.FieldOptions.CType;

            /** FieldOptions packed. */
            public packed: boolean;

            /** FieldOptions jstype. */
            public jstype: google.protobuf.FieldOptions.JSType;

            /** FieldOptions lazy. */
            public lazy: boolean;

            /** FieldOptions deprecated. */
            public deprecated: boolean;

            /** FieldOptions weak. */
            public weak: boolean;

            /** FieldOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FieldOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldOptions instance
             */
            public static create(properties?: google.protobuf.IFieldOptions): google.protobuf.FieldOptions;

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

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

            /**
             * Decodes a FieldOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldOptions
             * @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): google.protobuf.FieldOptions;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldOptions
             * @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)): google.protobuf.FieldOptions;

            /**
             * Verifies a FieldOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions;

            /**
             * Creates a plain object from a FieldOptions message. Also converts values to other types if specified.
             * @param message FieldOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace FieldOptions {

            /** CType enum. */
            enum CType {
                STRING = 0,
                CORD = 1,
                STRING_PIECE = 2
            }

            /** JSType enum. */
            enum JSType {
                JS_NORMAL = 0,
                JS_STRING = 1,
                JS_NUMBER = 2
            }
        }

        /** Properties of an OneofOptions. */
        interface IOneofOptions {

            /** OneofOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an OneofOptions. */
        class OneofOptions implements IOneofOptions {

            /**
             * Constructs a new OneofOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofOptions);

            /** OneofOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new OneofOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofOptions instance
             */
            public static create(properties?: google.protobuf.IOneofOptions): google.protobuf.OneofOptions;

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

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

            /**
             * Decodes an OneofOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofOptions
             * @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): google.protobuf.OneofOptions;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofOptions
             * @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)): google.protobuf.OneofOptions;

            /**
             * Verifies an OneofOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofOptions;

            /**
             * Creates a plain object from an OneofOptions message. Also converts values to other types if specified.
             * @param message OneofOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an EnumOptions. */
        interface IEnumOptions {

            /** EnumOptions allowAlias */
            allowAlias?: (boolean|null);

            /** EnumOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumOptions. */
        class EnumOptions implements IEnumOptions {

            /**
             * Constructs a new EnumOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumOptions);

            /** EnumOptions allowAlias. */
            public allowAlias: boolean;

            /** EnumOptions deprecated. */
            public deprecated: boolean;

            /** EnumOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumOptions instance
             */
            public static create(properties?: google.protobuf.IEnumOptions): google.protobuf.EnumOptions;

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

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

            /**
             * Decodes an EnumOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumOptions
             * @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): google.protobuf.EnumOptions;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumOptions
             * @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)): google.protobuf.EnumOptions;

            /**
             * Verifies an EnumOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumOptions;

            /**
             * Creates a plain object from an EnumOptions message. Also converts values to other types if specified.
             * @param message EnumOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an EnumValueOptions. */
        interface IEnumValueOptions {

            /** EnumValueOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumValueOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumValueOptions. */
        class EnumValueOptions implements IEnumValueOptions {

            /**
             * Constructs a new EnumValueOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueOptions);

            /** EnumValueOptions deprecated. */
            public deprecated: boolean;

            /** EnumValueOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumValueOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueOptions instance
             */
            public static create(properties?: google.protobuf.IEnumValueOptions): google.protobuf.EnumValueOptions;

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

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

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueOptions
             * @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): google.protobuf.EnumValueOptions;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueOptions
             * @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)): google.protobuf.EnumValueOptions;

            /**
             * Verifies an EnumValueOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueOptions;

            /**
             * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified.
             * @param message EnumValueOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ServiceOptions. */
        interface IServiceOptions {

            /** ServiceOptions deprecated */
            deprecated?: (boolean|null);

            /** ServiceOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** ServiceOptions .akkaserverless.service */
            ".akkaserverless.service"?: (akkaserverless.IServiceOptions|null);

            /** ServiceOptions .akkaserverless.codegen */
            ".akkaserverless.codegen"?: (akkaserverless.ICodegenOptions|null);
        }

        /** Represents a ServiceOptions. */
        class ServiceOptions implements IServiceOptions {

            /**
             * Constructs a new ServiceOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceOptions);

            /** ServiceOptions deprecated. */
            public deprecated: boolean;

            /** ServiceOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new ServiceOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceOptions instance
             */
            public static create(properties?: google.protobuf.IServiceOptions): google.protobuf.ServiceOptions;

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

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

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceOptions
             * @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): google.protobuf.ServiceOptions;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceOptions
             * @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)): google.protobuf.ServiceOptions;

            /**
             * Verifies a ServiceOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceOptions;

            /**
             * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified.
             * @param message ServiceOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a MethodOptions. */
        interface IMethodOptions {

            /** MethodOptions deprecated */
            deprecated?: (boolean|null);

            /** MethodOptions idempotencyLevel */
            idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|null);

            /** MethodOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MethodOptions .akkaserverless.method */
            ".akkaserverless.method"?: (akkaserverless.IMethodOptions|null);
        }

        /** Represents a MethodOptions. */
        class MethodOptions implements IMethodOptions {

            /**
             * Constructs a new MethodOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodOptions);

            /** MethodOptions deprecated. */
            public deprecated: boolean;

            /** MethodOptions idempotencyLevel. */
            public idempotencyLevel: google.protobuf.MethodOptions.IdempotencyLevel;

            /** MethodOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MethodOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodOptions instance
             */
            public static create(properties?: google.protobuf.IMethodOptions): google.protobuf.MethodOptions;

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

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

            /**
             * Decodes a MethodOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodOptions
             * @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): google.protobuf.MethodOptions;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodOptions
             * @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)): google.protobuf.MethodOptions;

            /**
             * Verifies a MethodOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodOptions;

            /**
             * Creates a plain object from a MethodOptions message. Also converts values to other types if specified.
             * @param message MethodOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace MethodOptions {

            /** IdempotencyLevel enum. */
            enum IdempotencyLevel {
                IDEMPOTENCY_UNKNOWN = 0,
                NO_SIDE_EFFECTS = 1,
                IDEMPOTENT = 2
            }
        }

        /** Properties of an UninterpretedOption. */
        interface IUninterpretedOption {

            /** UninterpretedOption name */
            name?: (google.protobuf.UninterpretedOption.INamePart[]|null);

            /** UninterpretedOption identifierValue */
            identifierValue?: (string|null);

            /** UninterpretedOption positiveIntValue */
            positiveIntValue?: (number|Long|null);

            /** UninterpretedOption negativeIntValue */
            negativeIntValue?: (number|Long|null);

            /** UninterpretedOption doubleValue */
            doubleValue?: (number|null);

            /** UninterpretedOption stringValue */
            stringValue?: (Uint8Array|null);

            /** UninterpretedOption aggregateValue */
            aggregateValue?: (string|null);
        }

        /** Represents an UninterpretedOption. */
        class UninterpretedOption implements IUninterpretedOption {

            /**
             * Constructs a new UninterpretedOption.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IUninterpretedOption);

            /** UninterpretedOption name. */
            public name: google.protobuf.UninterpretedOption.INamePart[];

            /** UninterpretedOption identifierValue. */
            public identifierValue: string;

            /** UninterpretedOption positiveIntValue. */
            public positiveIntValue: (number|Long);

            /** UninterpretedOption negativeIntValue. */
            public negativeIntValue: (number|Long);

            /** UninterpretedOption doubleValue. */
            public doubleValue: number;

            /** UninterpretedOption stringValue. */
            public stringValue: Uint8Array;

            /** UninterpretedOption aggregateValue. */
            public aggregateValue: string;

            /**
             * Creates a new UninterpretedOption instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UninterpretedOption instance
             */
            public static create(properties?: google.protobuf.IUninterpretedOption): google.protobuf.UninterpretedOption;

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

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

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UninterpretedOption
             * @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): google.protobuf.UninterpretedOption;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UninterpretedOption
             * @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)): google.protobuf.UninterpretedOption;

            /**
             * Verifies an UninterpretedOption message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UninterpretedOption
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption;

            /**
             * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified.
             * @param message UninterpretedOption
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.UninterpretedOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UninterpretedOption to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace UninterpretedOption {

            /** Properties of a NamePart. */
            interface INamePart {

                /** NamePart namePart */
                namePart: string;

                /** NamePart isExtension */
                isExtension: boolean;
            }

            /** Represents a NamePart. */
            class NamePart implements INamePart {

                /**
                 * Constructs a new NamePart.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.UninterpretedOption.INamePart);

                /** NamePart namePart. */
                public namePart: string;

                /** NamePart isExtension. */
                public isExtension: boolean;

                /**
                 * Creates a new NamePart instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NamePart instance
                 */
                public static create(properties?: google.protobuf.UninterpretedOption.INamePart): google.protobuf.UninterpretedOption.NamePart;

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

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

                /**
                 * Decodes a NamePart message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NamePart
                 * @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): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Decodes a NamePart message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NamePart
                 * @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)): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Verifies a NamePart message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a NamePart message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NamePart
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Creates a plain object from a NamePart message. Also converts values to other types if specified.
                 * @param message NamePart
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.UninterpretedOption.NamePart, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NamePart to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of a SourceCodeInfo. */
        interface ISourceCodeInfo {

            /** SourceCodeInfo location */
            location?: (google.protobuf.SourceCodeInfo.ILocation[]|null);
        }

        /** Represents a SourceCodeInfo. */
        class SourceCodeInfo implements ISourceCodeInfo {

            /**
             * Constructs a new SourceCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ISourceCodeInfo);

            /** SourceCodeInfo location. */
            public location: google.protobuf.SourceCodeInfo.ILocation[];

            /**
             * Creates a new SourceCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SourceCodeInfo instance
             */
            public static create(properties?: google.protobuf.ISourceCodeInfo): google.protobuf.SourceCodeInfo;

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

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

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SourceCodeInfo
             * @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): google.protobuf.SourceCodeInfo;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SourceCodeInfo
             * @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)): google.protobuf.SourceCodeInfo;

            /**
             * Verifies a SourceCodeInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SourceCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo;

            /**
             * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified.
             * @param message SourceCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.SourceCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SourceCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace SourceCodeInfo {

            /** Properties of a Location. */
            interface ILocation {

                /** Location path */
                path?: (number[]|null);

                /** Location span */
                span?: (number[]|null);

                /** Location leadingComments */
                leadingComments?: (string|null);

                /** Location trailingComments */
                trailingComments?: (string|null);

                /** Location leadingDetachedComments */
                leadingDetachedComments?: (string[]|null);
            }

            /** Represents a Location. */
            class Location implements ILocation {

                /**
                 * Constructs a new Location.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.SourceCodeInfo.ILocation);

                /** Location path. */
                public path: number[];

                /** Location span. */
                public span: number[];

                /** Location leadingComments. */
                public leadingComments: string;

                /** Location trailingComments. */
                public trailingComments: string;

                /** Location leadingDetachedComments. */
                public leadingDetachedComments: string[];

                /**
                 * Creates a new Location instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Location instance
                 */
                public static create(properties?: google.protobuf.SourceCodeInfo.ILocation): google.protobuf.SourceCodeInfo.Location;

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

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

                /**
                 * Decodes a Location message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Location
                 * @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): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Decodes a Location message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Location
                 * @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)): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Verifies a Location message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Location message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Location
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Creates a plain object from a Location message. Also converts values to other types if specified.
                 * @param message Location
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.SourceCodeInfo.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Location to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of a GeneratedCodeInfo. */
        interface IGeneratedCodeInfo {

            /** GeneratedCodeInfo annotation */
            annotation?: (google.protobuf.GeneratedCodeInfo.IAnnotation[]|null);
        }

        /** Represents a GeneratedCodeInfo. */
        class GeneratedCodeInfo implements IGeneratedCodeInfo {

            /**
             * Constructs a new GeneratedCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IGeneratedCodeInfo);

            /** GeneratedCodeInfo annotation. */
            public annotation: google.protobuf.GeneratedCodeInfo.IAnnotation[];

            /**
             * Creates a new GeneratedCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GeneratedCodeInfo instance
             */
            public static create(properties?: google.protobuf.IGeneratedCodeInfo): google.protobuf.GeneratedCodeInfo;

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

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

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GeneratedCodeInfo
             * @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): google.protobuf.GeneratedCodeInfo;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GeneratedCodeInfo
             * @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)): google.protobuf.GeneratedCodeInfo;

            /**
             * Verifies a GeneratedCodeInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GeneratedCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo;

            /**
             * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified.
             * @param message GeneratedCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.GeneratedCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GeneratedCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace GeneratedCodeInfo {

            /** Properties of an Annotation. */
            interface IAnnotation {

                /** Annotation path */
                path?: (number[]|null);

                /** Annotation sourceFile */
                sourceFile?: (string|null);

                /** Annotation begin */
                begin?: (number|null);

                /** Annotation end */
                end?: (number|null);
            }

            /** Represents an Annotation. */
            class Annotation implements IAnnotation {

                /**
                 * Constructs a new Annotation.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation);

                /** Annotation path. */
                public path: number[];

                /** Annotation sourceFile. */
                public sourceFile: string;

                /** Annotation begin. */
                public begin: number;

                /** Annotation end. */
                public end: number;

                /**
                 * Creates a new Annotation instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Annotation instance
                 */
                public static create(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation): google.protobuf.GeneratedCodeInfo.Annotation;

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

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

                /**
                 * Decodes an Annotation message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Annotation
                 * @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): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Decodes an Annotation message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Annotation
                 * @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)): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Verifies an Annotation message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an Annotation message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Annotation
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Creates a plain object from an Annotation message. Also converts values to other types if specified.
                 * @param message Annotation
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.GeneratedCodeInfo.Annotation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Annotation to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of an Empty. */
        interface IEmpty {
        }

        /** Represents an Empty. */
        class Empty implements IEmpty {

            /**
             * Constructs a new Empty.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEmpty);

            /**
             * Creates a new Empty instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Empty instance
             */
            public static create(properties?: google.protobuf.IEmpty): google.protobuf.Empty;

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

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

            /**
             * Decodes an Empty message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Empty
             * @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): google.protobuf.Empty;

            /**
             * Decodes an Empty message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Empty
             * @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)): google.protobuf.Empty;

            /**
             * Verifies an Empty message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Empty message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Empty
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Empty;

            /**
             * Creates a plain object from an Empty message. Also converts values to other types if specified.
             * @param message Empty
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Empty, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Empty to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an Any. */
        interface IAny {

            /** Any type_url */
            type_url?: (string|null);

            /** Any value */
            value?: (Uint8Array|null);
        }

        /** Represents an Any. */
        class Any implements IAny {

            /**
             * Constructs a new Any.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IAny);

            /** Any type_url. */
            public type_url: string;

            /** Any value. */
            public value: Uint8Array;

            /**
             * Creates a new Any instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Any instance
             */
            public static create(properties?: google.protobuf.IAny): google.protobuf.Any;

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

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

            /**
             * Decodes an Any message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Any
             * @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): google.protobuf.Any;

            /**
             * Decodes an Any message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Any
             * @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)): google.protobuf.Any;

            /**
             * Verifies an Any message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Any message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Any
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Any;

            /**
             * Creates a plain object from an Any message. Also converts values to other types if specified.
             * @param message Any
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Any, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Any to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }
}
