// package: akkaserverless.component.valueentity
// file: akkaserverless/component/valueentity/value_entity.proto

/* tslint:disable */
/* eslint-disable */

import * as jspb from "google-protobuf";
import * as akkaserverless_component_component_pb from "../../../akkaserverless/component/component_pb";
import * as akkaserverless_component_entity_entity_pb from "../../../akkaserverless/component/entity/entity_pb";
import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb";

export class ValueEntityStreamIn extends jspb.Message { 

    hasInit(): boolean;
    clearInit(): void;
    getInit(): ValueEntityInit | undefined;
    setInit(value?: ValueEntityInit): ValueEntityStreamIn;

    hasCommand(): boolean;
    clearCommand(): void;
    getCommand(): akkaserverless_component_entity_entity_pb.Command | undefined;
    setCommand(value?: akkaserverless_component_entity_entity_pb.Command): ValueEntityStreamIn;

    getMessageCase(): ValueEntityStreamIn.MessageCase;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ValueEntityStreamIn.AsObject;
    static toObject(includeInstance: boolean, msg: ValueEntityStreamIn): ValueEntityStreamIn.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ValueEntityStreamIn, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ValueEntityStreamIn;
    static deserializeBinaryFromReader(message: ValueEntityStreamIn, reader: jspb.BinaryReader): ValueEntityStreamIn;
}

export namespace ValueEntityStreamIn {
    export type AsObject = {
        init?: ValueEntityInit.AsObject,
        command?: akkaserverless_component_entity_entity_pb.Command.AsObject,
    }

    export enum MessageCase {
        MESSAGE_NOT_SET = 0,
        INIT = 1,
        COMMAND = 2,
    }

}

export class ValueEntityInit extends jspb.Message { 
    getServiceName(): string;
    setServiceName(value: string): ValueEntityInit;
    getEntityId(): string;
    setEntityId(value: string): ValueEntityInit;

    hasState(): boolean;
    clearState(): void;
    getState(): ValueEntityInitState | undefined;
    setState(value?: ValueEntityInitState): ValueEntityInit;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ValueEntityInit.AsObject;
    static toObject(includeInstance: boolean, msg: ValueEntityInit): ValueEntityInit.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ValueEntityInit, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ValueEntityInit;
    static deserializeBinaryFromReader(message: ValueEntityInit, reader: jspb.BinaryReader): ValueEntityInit;
}

export namespace ValueEntityInit {
    export type AsObject = {
        serviceName: string,
        entityId: string,
        state?: ValueEntityInitState.AsObject,
    }
}

export class ValueEntityInitState extends jspb.Message { 

    hasValue(): boolean;
    clearValue(): void;
    getValue(): google_protobuf_any_pb.Any | undefined;
    setValue(value?: google_protobuf_any_pb.Any): ValueEntityInitState;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ValueEntityInitState.AsObject;
    static toObject(includeInstance: boolean, msg: ValueEntityInitState): ValueEntityInitState.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ValueEntityInitState, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ValueEntityInitState;
    static deserializeBinaryFromReader(message: ValueEntityInitState, reader: jspb.BinaryReader): ValueEntityInitState;
}

export namespace ValueEntityInitState {
    export type AsObject = {
        value?: google_protobuf_any_pb.Any.AsObject,
    }
}

export class ValueEntityStreamOut extends jspb.Message { 

    hasReply(): boolean;
    clearReply(): void;
    getReply(): ValueEntityReply | undefined;
    setReply(value?: ValueEntityReply): ValueEntityStreamOut;

    hasFailure(): boolean;
    clearFailure(): void;
    getFailure(): akkaserverless_component_component_pb.Failure | undefined;
    setFailure(value?: akkaserverless_component_component_pb.Failure): ValueEntityStreamOut;

    getMessageCase(): ValueEntityStreamOut.MessageCase;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ValueEntityStreamOut.AsObject;
    static toObject(includeInstance: boolean, msg: ValueEntityStreamOut): ValueEntityStreamOut.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ValueEntityStreamOut, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ValueEntityStreamOut;
    static deserializeBinaryFromReader(message: ValueEntityStreamOut, reader: jspb.BinaryReader): ValueEntityStreamOut;
}

export namespace ValueEntityStreamOut {
    export type AsObject = {
        reply?: ValueEntityReply.AsObject,
        failure?: akkaserverless_component_component_pb.Failure.AsObject,
    }

    export enum MessageCase {
        MESSAGE_NOT_SET = 0,
        REPLY = 1,
        FAILURE = 2,
    }

}

export class ValueEntityReply extends jspb.Message { 
    getCommandId(): number;
    setCommandId(value: number): ValueEntityReply;

    hasClientAction(): boolean;
    clearClientAction(): void;
    getClientAction(): akkaserverless_component_component_pb.ClientAction | undefined;
    setClientAction(value?: akkaserverless_component_component_pb.ClientAction): ValueEntityReply;
    clearSideEffectsList(): void;
    getSideEffectsList(): Array<akkaserverless_component_component_pb.SideEffect>;
    setSideEffectsList(value: Array<akkaserverless_component_component_pb.SideEffect>): ValueEntityReply;
    addSideEffects(value?: akkaserverless_component_component_pb.SideEffect, index?: number): akkaserverless_component_component_pb.SideEffect;

    hasStateAction(): boolean;
    clearStateAction(): void;
    getStateAction(): ValueEntityAction | undefined;
    setStateAction(value?: ValueEntityAction): ValueEntityReply;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ValueEntityReply.AsObject;
    static toObject(includeInstance: boolean, msg: ValueEntityReply): ValueEntityReply.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ValueEntityReply, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ValueEntityReply;
    static deserializeBinaryFromReader(message: ValueEntityReply, reader: jspb.BinaryReader): ValueEntityReply;
}

export namespace ValueEntityReply {
    export type AsObject = {
        commandId: number,
        clientAction?: akkaserverless_component_component_pb.ClientAction.AsObject,
        sideEffectsList: Array<akkaserverless_component_component_pb.SideEffect.AsObject>,
        stateAction?: ValueEntityAction.AsObject,
    }
}

export class ValueEntityAction extends jspb.Message { 

    hasUpdate(): boolean;
    clearUpdate(): void;
    getUpdate(): ValueEntityUpdate | undefined;
    setUpdate(value?: ValueEntityUpdate): ValueEntityAction;

    hasDelete(): boolean;
    clearDelete(): void;
    getDelete(): ValueEntityDelete | undefined;
    setDelete(value?: ValueEntityDelete): ValueEntityAction;

    getActionCase(): ValueEntityAction.ActionCase;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ValueEntityAction.AsObject;
    static toObject(includeInstance: boolean, msg: ValueEntityAction): ValueEntityAction.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ValueEntityAction, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ValueEntityAction;
    static deserializeBinaryFromReader(message: ValueEntityAction, reader: jspb.BinaryReader): ValueEntityAction;
}

export namespace ValueEntityAction {
    export type AsObject = {
        update?: ValueEntityUpdate.AsObject,
        pb_delete?: ValueEntityDelete.AsObject,
    }

    export enum ActionCase {
        ACTION_NOT_SET = 0,
        UPDATE = 1,
        DELETE = 2,
    }

}

export class ValueEntityUpdate extends jspb.Message { 

    hasValue(): boolean;
    clearValue(): void;
    getValue(): google_protobuf_any_pb.Any | undefined;
    setValue(value?: google_protobuf_any_pb.Any): ValueEntityUpdate;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ValueEntityUpdate.AsObject;
    static toObject(includeInstance: boolean, msg: ValueEntityUpdate): ValueEntityUpdate.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ValueEntityUpdate, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ValueEntityUpdate;
    static deserializeBinaryFromReader(message: ValueEntityUpdate, reader: jspb.BinaryReader): ValueEntityUpdate;
}

export namespace ValueEntityUpdate {
    export type AsObject = {
        value?: google_protobuf_any_pb.Any.AsObject,
    }
}

export class ValueEntityDelete extends jspb.Message { 

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ValueEntityDelete.AsObject;
    static toObject(includeInstance: boolean, msg: ValueEntityDelete): ValueEntityDelete.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ValueEntityDelete, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ValueEntityDelete;
    static deserializeBinaryFromReader(message: ValueEntityDelete, reader: jspb.BinaryReader): ValueEntityDelete;
}

export namespace ValueEntityDelete {
    export type AsObject = {
    }
}
