// package: akkaserverless
// file: akkaserverless/annotations.proto

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

import * as jspb from "google-protobuf";
import * as akkaserverless_component_pb from "../akkaserverless/component_pb";
import * as akkaserverless_entity_pb from "../akkaserverless/entity_pb";
import * as akkaserverless_eventing_pb from "../akkaserverless/eventing_pb";
import * as akkaserverless_jwt_pb from "../akkaserverless/jwt_pb";
import * as akkaserverless_views_pb from "../akkaserverless/views_pb";
import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb";

export class FieldOptions extends jspb.Message { 
    getEntityKey(): boolean;
    setEntityKey(value: boolean): FieldOptions;

    hasJwt(): boolean;
    clearJwt(): void;
    getJwt(): akkaserverless_jwt_pb.JwtFieldOptions | undefined;
    setJwt(value?: akkaserverless_jwt_pb.JwtFieldOptions): FieldOptions;

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

export namespace FieldOptions {
    export type AsObject = {
        entityKey: boolean,
        jwt?: akkaserverless_jwt_pb.JwtFieldOptions.AsObject,
    }
}

export class FileOptions extends jspb.Message { 

    hasEventSourcedEntity(): boolean;
    clearEventSourcedEntity(): void;
    getEventSourcedEntity(): akkaserverless_component_pb.EventSourcedEntity | undefined;
    setEventSourcedEntity(value?: akkaserverless_component_pb.EventSourcedEntity): FileOptions;

    hasValueEntity(): boolean;
    clearValueEntity(): void;
    getValueEntity(): akkaserverless_component_pb.ValueEntity | undefined;
    setValueEntity(value?: akkaserverless_component_pb.ValueEntity): FileOptions;

    hasReplicatedEntity(): boolean;
    clearReplicatedEntity(): void;
    getReplicatedEntity(): akkaserverless_component_pb.ReplicatedEntity | undefined;
    setReplicatedEntity(value?: akkaserverless_component_pb.ReplicatedEntity): FileOptions;

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

export namespace FileOptions {
    export type AsObject = {
        eventSourcedEntity?: akkaserverless_component_pb.EventSourcedEntity.AsObject,
        valueEntity?: akkaserverless_component_pb.ValueEntity.AsObject,
        replicatedEntity?: akkaserverless_component_pb.ReplicatedEntity.AsObject,
    }
}

export class MessageOptions extends jspb.Message { 

    hasJwt(): boolean;
    clearJwt(): void;
    getJwt(): akkaserverless_jwt_pb.JwtMessageOptions | undefined;
    setJwt(value?: akkaserverless_jwt_pb.JwtMessageOptions): MessageOptions;

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

export namespace MessageOptions {
    export type AsObject = {
        jwt?: akkaserverless_jwt_pb.JwtMessageOptions.AsObject,
    }
}

export class MethodOptions extends jspb.Message { 

    hasEventing(): boolean;
    clearEventing(): void;
    getEventing(): akkaserverless_eventing_pb.Eventing | undefined;
    setEventing(value?: akkaserverless_eventing_pb.Eventing): MethodOptions;

    hasView(): boolean;
    clearView(): void;
    getView(): akkaserverless_views_pb.View | undefined;
    setView(value?: akkaserverless_views_pb.View): MethodOptions;

    hasJwt(): boolean;
    clearJwt(): void;
    getJwt(): akkaserverless_jwt_pb.JwtMethodOptions | undefined;
    setJwt(value?: akkaserverless_jwt_pb.JwtMethodOptions): MethodOptions;

    hasEntity(): boolean;
    clearEntity(): void;
    getEntity(): akkaserverless_entity_pb.EntityMethodOptions | undefined;
    setEntity(value?: akkaserverless_entity_pb.EntityMethodOptions): MethodOptions;

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

export namespace MethodOptions {
    export type AsObject = {
        eventing?: akkaserverless_eventing_pb.Eventing.AsObject,
        view?: akkaserverless_views_pb.View.AsObject,
        jwt?: akkaserverless_jwt_pb.JwtMethodOptions.AsObject,
        entity?: akkaserverless_entity_pb.EntityMethodOptions.AsObject,
    }
}

export class ServiceOptions extends jspb.Message { 
    getType(): ServiceOptions.ServiceType;
    setType(value: ServiceOptions.ServiceType): ServiceOptions;
    getComponent(): string;
    setComponent(value: string): ServiceOptions;

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

export namespace ServiceOptions {
    export type AsObject = {
        type: ServiceOptions.ServiceType,
        component: string,
    }

    export enum ServiceType {
    SERVICE_TYPE_UNSPECIFIED = 0,
    SERVICE_TYPE_ACTION = 1,
    SERVICE_TYPE_ENTITY = 2,
    SERVICE_TYPE_VIEW = 3,
    }

}

export class CodegenOptions extends jspb.Message { 

    hasEventSourcedEntity(): boolean;
    clearEventSourcedEntity(): void;
    getEventSourcedEntity(): akkaserverless_component_pb.EventSourcedEntityDef | undefined;
    setEventSourcedEntity(value?: akkaserverless_component_pb.EventSourcedEntityDef): CodegenOptions;

    hasValueEntity(): boolean;
    clearValueEntity(): void;
    getValueEntity(): akkaserverless_component_pb.ValueEntityDef | undefined;
    setValueEntity(value?: akkaserverless_component_pb.ValueEntityDef): CodegenOptions;

    hasReplicatedEntity(): boolean;
    clearReplicatedEntity(): void;
    getReplicatedEntity(): akkaserverless_component_pb.ReplicatedEntityDef | undefined;
    setReplicatedEntity(value?: akkaserverless_component_pb.ReplicatedEntityDef): CodegenOptions;

    hasAction(): boolean;
    clearAction(): void;
    getAction(): akkaserverless_component_pb.ActionDef | undefined;
    setAction(value?: akkaserverless_component_pb.ActionDef): CodegenOptions;

    hasView(): boolean;
    clearView(): void;
    getView(): akkaserverless_component_pb.ViewDef | undefined;
    setView(value?: akkaserverless_component_pb.ViewDef): CodegenOptions;

    getCodegenCase(): CodegenOptions.CodegenCase;

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

export namespace CodegenOptions {
    export type AsObject = {
        eventSourcedEntity?: akkaserverless_component_pb.EventSourcedEntityDef.AsObject,
        valueEntity?: akkaserverless_component_pb.ValueEntityDef.AsObject,
        replicatedEntity?: akkaserverless_component_pb.ReplicatedEntityDef.AsObject,
        action?: akkaserverless_component_pb.ActionDef.AsObject,
        view?: akkaserverless_component_pb.ViewDef.AsObject,
    }

    export enum CodegenCase {
        CODEGEN_NOT_SET = 0,
        EVENT_SOURCED_ENTITY = 1,
        VALUE_ENTITY = 2,
        REPLICATED_ENTITY = 3,
        ACTION = 4,
        VIEW = 5,
    }

}

export const field: jspb.ExtensionFieldInfo<FieldOptions>;

export const file: jspb.ExtensionFieldInfo<FileOptions>;

export const method: jspb.ExtensionFieldInfo<MethodOptions>;

export const message: jspb.ExtensionFieldInfo<MessageOptions>;

export const service: jspb.ExtensionFieldInfo<ServiceOptions>;

export const codegen: jspb.ExtensionFieldInfo<CodegenOptions>;
