// package: akkaserverless.component.eventsourcedentity
// file: akkaserverless/component/eventsourcedentity/event_sourced_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 EventSourcedInit extends jspb.Message { 
    getServiceName(): string;
    setServiceName(value: string): EventSourcedInit;
    getEntityId(): string;
    setEntityId(value: string): EventSourcedInit;

    hasSnapshot(): boolean;
    clearSnapshot(): void;
    getSnapshot(): EventSourcedSnapshot | undefined;
    setSnapshot(value?: EventSourcedSnapshot): EventSourcedInit;

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

export namespace EventSourcedInit {
    export type AsObject = {
        serviceName: string,
        entityId: string,
        snapshot?: EventSourcedSnapshot.AsObject,
    }
}

export class EventSourcedSnapshot extends jspb.Message { 
    getSnapshotSequence(): number;
    setSnapshotSequence(value: number): EventSourcedSnapshot;

    hasSnapshot(): boolean;
    clearSnapshot(): void;
    getSnapshot(): google_protobuf_any_pb.Any | undefined;
    setSnapshot(value?: google_protobuf_any_pb.Any): EventSourcedSnapshot;

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

export namespace EventSourcedSnapshot {
    export type AsObject = {
        snapshotSequence: number,
        snapshot?: google_protobuf_any_pb.Any.AsObject,
    }
}

export class EventSourcedEvent extends jspb.Message { 
    getSequence(): number;
    setSequence(value: number): EventSourcedEvent;

    hasPayload(): boolean;
    clearPayload(): void;
    getPayload(): google_protobuf_any_pb.Any | undefined;
    setPayload(value?: google_protobuf_any_pb.Any): EventSourcedEvent;

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

export namespace EventSourcedEvent {
    export type AsObject = {
        sequence: number,
        payload?: google_protobuf_any_pb.Any.AsObject,
    }
}

export class EventSourcedSnapshotRequest extends jspb.Message { 
    getRequestId(): number;
    setRequestId(value: number): EventSourcedSnapshotRequest;

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

export namespace EventSourcedSnapshotRequest {
    export type AsObject = {
        requestId: number,
    }
}

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

    hasClientAction(): boolean;
    clearClientAction(): void;
    getClientAction(): akkaserverless_component_component_pb.ClientAction | undefined;
    setClientAction(value?: akkaserverless_component_component_pb.ClientAction): EventSourcedReply;
    clearSideEffectsList(): void;
    getSideEffectsList(): Array<akkaserverless_component_component_pb.SideEffect>;
    setSideEffectsList(value: Array<akkaserverless_component_component_pb.SideEffect>): EventSourcedReply;
    addSideEffects(value?: akkaserverless_component_component_pb.SideEffect, index?: number): akkaserverless_component_component_pb.SideEffect;
    clearEventsList(): void;
    getEventsList(): Array<google_protobuf_any_pb.Any>;
    setEventsList(value: Array<google_protobuf_any_pb.Any>): EventSourcedReply;
    addEvents(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any;

    hasSnapshot(): boolean;
    clearSnapshot(): void;
    getSnapshot(): google_protobuf_any_pb.Any | undefined;
    setSnapshot(value?: google_protobuf_any_pb.Any): EventSourcedReply;

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

export namespace EventSourcedReply {
    export type AsObject = {
        commandId: number,
        clientAction?: akkaserverless_component_component_pb.ClientAction.AsObject,
        sideEffectsList: Array<akkaserverless_component_component_pb.SideEffect.AsObject>,
        eventsList: Array<google_protobuf_any_pb.Any.AsObject>,
        snapshot?: google_protobuf_any_pb.Any.AsObject,
    }
}

export class EventSourcedSnapshotReply extends jspb.Message { 
    getRequestId(): number;
    setRequestId(value: number): EventSourcedSnapshotReply;

    hasSnapshot(): boolean;
    clearSnapshot(): void;
    getSnapshot(): google_protobuf_any_pb.Any | undefined;
    setSnapshot(value?: google_protobuf_any_pb.Any): EventSourcedSnapshotReply;

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

export namespace EventSourcedSnapshotReply {
    export type AsObject = {
        requestId: number,
        snapshot?: google_protobuf_any_pb.Any.AsObject,
    }
}

export class EventSourcedStreamIn extends jspb.Message { 

    hasInit(): boolean;
    clearInit(): void;
    getInit(): EventSourcedInit | undefined;
    setInit(value?: EventSourcedInit): EventSourcedStreamIn;

    hasEvent(): boolean;
    clearEvent(): void;
    getEvent(): EventSourcedEvent | undefined;
    setEvent(value?: EventSourcedEvent): EventSourcedStreamIn;

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

    hasSnapshotRequest(): boolean;
    clearSnapshotRequest(): void;
    getSnapshotRequest(): EventSourcedSnapshotRequest | undefined;
    setSnapshotRequest(value?: EventSourcedSnapshotRequest): EventSourcedStreamIn;

    getMessageCase(): EventSourcedStreamIn.MessageCase;

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

export namespace EventSourcedStreamIn {
    export type AsObject = {
        init?: EventSourcedInit.AsObject,
        event?: EventSourcedEvent.AsObject,
        command?: akkaserverless_component_entity_entity_pb.Command.AsObject,
        snapshotRequest?: EventSourcedSnapshotRequest.AsObject,
    }

    export enum MessageCase {
        MESSAGE_NOT_SET = 0,
        INIT = 1,
        EVENT = 2,
        COMMAND = 3,
        SNAPSHOT_REQUEST = 4,
    }

}

export class EventSourcedStreamOut extends jspb.Message { 

    hasReply(): boolean;
    clearReply(): void;
    getReply(): EventSourcedReply | undefined;
    setReply(value?: EventSourcedReply): EventSourcedStreamOut;

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

    hasSnapshotReply(): boolean;
    clearSnapshotReply(): void;
    getSnapshotReply(): EventSourcedSnapshotReply | undefined;
    setSnapshotReply(value?: EventSourcedSnapshotReply): EventSourcedStreamOut;

    getMessageCase(): EventSourcedStreamOut.MessageCase;

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

export namespace EventSourcedStreamOut {
    export type AsObject = {
        reply?: EventSourcedReply.AsObject,
        failure?: akkaserverless_component_component_pb.Failure.AsObject,
        snapshotReply?: EventSourcedSnapshotReply.AsObject,
    }

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

}
