import { GrpcMessage, RecursivePartial, ToProtobufJSONOptions } from '@ngx-grpc/common';
import { BinaryReader, BinaryWriter, ByteSource } from 'google-protobuf';
import * as armonikApiGrpcV1Result_status001 from './result-status.pb';
import * as armonikApiGrpcV1Task_status003 from './task-status.pb';
import * as armonikApiGrpcV1Results005 from './results-filters.pb';
import * as armonikApiGrpcV1Tasks006 from './tasks-filters.pb';
export declare enum EventsEnum {
    EVENTS_ENUM_UNSPECIFIED = 0,
    EVENTS_ENUM_NEW_TASK = 1,
    EVENTS_ENUM_TASK_STATUS_UPDATE = 2,
    EVENTS_ENUM_NEW_RESULT = 3,
    EVENTS_ENUM_RESULT_STATUS_UPDATE = 4,
    EVENTS_ENUM_RESULT_OWNER_UPDATE = 5
}
/**
 * Message implementation for armonik.api.grpc.v1.events.EventSubscriptionRequest
 */
export declare class EventSubscriptionRequest implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): EventSubscriptionRequest;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: EventSubscriptionRequest): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: EventSubscriptionRequest, _reader: BinaryReader): void;
    /**
     * Serializes a message to binary format using provided binary reader
     * @param _instance message instance
     * @param _writer binary writer instance
     */
    static serializeBinaryToWriter(_instance: EventSubscriptionRequest, _writer: BinaryWriter): void;
    private _sessionId;
    private _tasksFilters?;
    private _resultsFilters?;
    private _returnedEvents;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of EventSubscriptionRequest to deeply clone from
     */
    constructor(_value?: RecursivePartial<EventSubscriptionRequest.AsObject>);
    get sessionId(): string;
    set sessionId(value: string);
    get tasksFilters(): armonikApiGrpcV1Tasks006.Filters | undefined;
    set tasksFilters(value: armonikApiGrpcV1Tasks006.Filters | undefined);
    get resultsFilters(): armonikApiGrpcV1Results005.Filters | undefined;
    set resultsFilters(value: armonikApiGrpcV1Results005.Filters | undefined);
    get returnedEvents(): EventsEnum[];
    set returnedEvents(value: EventsEnum[]);
    /**
     * Serialize message to binary data
     * @param instance message instance
     */
    serializeBinary(): Uint8Array;
    /**
     * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
     */
    toObject(): EventSubscriptionRequest.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): EventSubscriptionRequest.AsObject;
    /**
     * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
     * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
     * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
     */
    toProtobufJSON(options?: ToProtobufJSONOptions): EventSubscriptionRequest.AsProtobufJSON;
}
export declare namespace EventSubscriptionRequest {
    /**
     * Standard JavaScript object representation for EventSubscriptionRequest
     */
    interface AsObject {
        sessionId: string;
        tasksFilters?: armonikApiGrpcV1Tasks006.Filters.AsObject;
        resultsFilters?: armonikApiGrpcV1Results005.Filters.AsObject;
        returnedEvents: EventsEnum[];
    }
    /**
     * Protobuf JSON representation for EventSubscriptionRequest
     */
    interface AsProtobufJSON {
        sessionId: string;
        tasksFilters: armonikApiGrpcV1Tasks006.Filters.AsProtobufJSON | null;
        resultsFilters: armonikApiGrpcV1Results005.Filters.AsProtobufJSON | null;
        returnedEvents: string[];
    }
}
/**
 * Message implementation for armonik.api.grpc.v1.events.EventSubscriptionResponse
 */
export declare class EventSubscriptionResponse implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): EventSubscriptionResponse;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: EventSubscriptionResponse): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: EventSubscriptionResponse, _reader: BinaryReader): void;
    /**
     * Serializes a message to binary format using provided binary reader
     * @param _instance message instance
     * @param _writer binary writer instance
     */
    static serializeBinaryToWriter(_instance: EventSubscriptionResponse, _writer: BinaryWriter): void;
    private _sessionId;
    private _taskStatusUpdate?;
    private _resultStatusUpdate?;
    private _resultOwnerUpdate?;
    private _newTask?;
    private _newResult?;
    private _update;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of EventSubscriptionResponse to deeply clone from
     */
    constructor(_value?: RecursivePartial<EventSubscriptionResponse.AsObject>);
    get sessionId(): string;
    set sessionId(value: string);
    get taskStatusUpdate(): EventSubscriptionResponse.TaskStatusUpdate | undefined;
    set taskStatusUpdate(value: EventSubscriptionResponse.TaskStatusUpdate | undefined);
    get resultStatusUpdate(): EventSubscriptionResponse.ResultStatusUpdate | undefined;
    set resultStatusUpdate(value: EventSubscriptionResponse.ResultStatusUpdate | undefined);
    get resultOwnerUpdate(): EventSubscriptionResponse.ResultOwnerUpdate | undefined;
    set resultOwnerUpdate(value: EventSubscriptionResponse.ResultOwnerUpdate | undefined);
    get newTask(): EventSubscriptionResponse.NewTask | undefined;
    set newTask(value: EventSubscriptionResponse.NewTask | undefined);
    get newResult(): EventSubscriptionResponse.NewResult | undefined;
    set newResult(value: EventSubscriptionResponse.NewResult | undefined);
    get update(): EventSubscriptionResponse.UpdateCase;
    /**
     * Serialize message to binary data
     * @param instance message instance
     */
    serializeBinary(): Uint8Array;
    /**
     * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
     */
    toObject(): EventSubscriptionResponse.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): EventSubscriptionResponse.AsObject;
    /**
     * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
     * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
     * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
     */
    toProtobufJSON(options?: ToProtobufJSONOptions): EventSubscriptionResponse.AsProtobufJSON;
}
export declare namespace EventSubscriptionResponse {
    /**
     * Standard JavaScript object representation for EventSubscriptionResponse
     */
    interface AsObject {
        sessionId: string;
        taskStatusUpdate?: EventSubscriptionResponse.TaskStatusUpdate.AsObject;
        resultStatusUpdate?: EventSubscriptionResponse.ResultStatusUpdate.AsObject;
        resultOwnerUpdate?: EventSubscriptionResponse.ResultOwnerUpdate.AsObject;
        newTask?: EventSubscriptionResponse.NewTask.AsObject;
        newResult?: EventSubscriptionResponse.NewResult.AsObject;
    }
    /**
     * Protobuf JSON representation for EventSubscriptionResponse
     */
    interface AsProtobufJSON {
        sessionId: string;
        taskStatusUpdate: EventSubscriptionResponse.TaskStatusUpdate.AsProtobufJSON | null;
        resultStatusUpdate: EventSubscriptionResponse.ResultStatusUpdate.AsProtobufJSON | null;
        resultOwnerUpdate: EventSubscriptionResponse.ResultOwnerUpdate.AsProtobufJSON | null;
        newTask: EventSubscriptionResponse.NewTask.AsProtobufJSON | null;
        newResult: EventSubscriptionResponse.NewResult.AsProtobufJSON | null;
    }
    enum UpdateCase {
        none = 0,
        taskStatusUpdate = 1,
        resultStatusUpdate = 2,
        resultOwnerUpdate = 3,
        newTask = 4,
        newResult = 5
    }
    /**
     * Message implementation for armonik.api.grpc.v1.events.EventSubscriptionResponse.TaskStatusUpdate
     */
    class TaskStatusUpdate implements GrpcMessage {
        static id: string;
        /**
         * Deserialize binary data to message
         * @param instance message instance
         */
        static deserializeBinary(bytes: ByteSource): TaskStatusUpdate;
        /**
         * Check all the properties and set default protobuf values if necessary
         * @param _instance message instance
         */
        static refineValues(_instance: TaskStatusUpdate): void;
        /**
         * Deserializes / reads binary message into message instance using provided binary reader
         * @param _instance message instance
         * @param _reader binary reader instance
         */
        static deserializeBinaryFromReader(_instance: TaskStatusUpdate, _reader: BinaryReader): void;
        /**
         * Serializes a message to binary format using provided binary reader
         * @param _instance message instance
         * @param _writer binary writer instance
         */
        static serializeBinaryToWriter(_instance: TaskStatusUpdate, _writer: BinaryWriter): void;
        private _taskId;
        private _status;
        /**
         * Message constructor. Initializes the properties and applies default Protobuf values if necessary
         * @param _value initial values object or instance of TaskStatusUpdate to deeply clone from
         */
        constructor(_value?: RecursivePartial<TaskStatusUpdate.AsObject>);
        get taskId(): string;
        set taskId(value: string);
        get status(): armonikApiGrpcV1Task_status003.TaskStatus;
        set status(value: armonikApiGrpcV1Task_status003.TaskStatus);
        /**
         * Serialize message to binary data
         * @param instance message instance
         */
        serializeBinary(): Uint8Array;
        /**
         * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
         */
        toObject(): TaskStatusUpdate.AsObject;
        /**
         * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
         */
        toJSON(): TaskStatusUpdate.AsObject;
        /**
         * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
         * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
         * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
         */
        toProtobufJSON(options?: ToProtobufJSONOptions): TaskStatusUpdate.AsProtobufJSON;
    }
    namespace TaskStatusUpdate {
        /**
         * Standard JavaScript object representation for TaskStatusUpdate
         */
        interface AsObject {
            taskId: string;
            status: armonikApiGrpcV1Task_status003.TaskStatus;
        }
        /**
         * Protobuf JSON representation for TaskStatusUpdate
         */
        interface AsProtobufJSON {
            taskId: string;
            status: string;
        }
    }
    /**
     * Message implementation for armonik.api.grpc.v1.events.EventSubscriptionResponse.ResultStatusUpdate
     */
    class ResultStatusUpdate implements GrpcMessage {
        static id: string;
        /**
         * Deserialize binary data to message
         * @param instance message instance
         */
        static deserializeBinary(bytes: ByteSource): ResultStatusUpdate;
        /**
         * Check all the properties and set default protobuf values if necessary
         * @param _instance message instance
         */
        static refineValues(_instance: ResultStatusUpdate): void;
        /**
         * Deserializes / reads binary message into message instance using provided binary reader
         * @param _instance message instance
         * @param _reader binary reader instance
         */
        static deserializeBinaryFromReader(_instance: ResultStatusUpdate, _reader: BinaryReader): void;
        /**
         * Serializes a message to binary format using provided binary reader
         * @param _instance message instance
         * @param _writer binary writer instance
         */
        static serializeBinaryToWriter(_instance: ResultStatusUpdate, _writer: BinaryWriter): void;
        private _resultId;
        private _status;
        /**
         * Message constructor. Initializes the properties and applies default Protobuf values if necessary
         * @param _value initial values object or instance of ResultStatusUpdate to deeply clone from
         */
        constructor(_value?: RecursivePartial<ResultStatusUpdate.AsObject>);
        get resultId(): string;
        set resultId(value: string);
        get status(): armonikApiGrpcV1Result_status001.ResultStatus;
        set status(value: armonikApiGrpcV1Result_status001.ResultStatus);
        /**
         * Serialize message to binary data
         * @param instance message instance
         */
        serializeBinary(): Uint8Array;
        /**
         * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
         */
        toObject(): ResultStatusUpdate.AsObject;
        /**
         * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
         */
        toJSON(): ResultStatusUpdate.AsObject;
        /**
         * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
         * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
         * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
         */
        toProtobufJSON(options?: ToProtobufJSONOptions): ResultStatusUpdate.AsProtobufJSON;
    }
    namespace ResultStatusUpdate {
        /**
         * Standard JavaScript object representation for ResultStatusUpdate
         */
        interface AsObject {
            resultId: string;
            status: armonikApiGrpcV1Result_status001.ResultStatus;
        }
        /**
         * Protobuf JSON representation for ResultStatusUpdate
         */
        interface AsProtobufJSON {
            resultId: string;
            status: string;
        }
    }
    /**
     * Message implementation for armonik.api.grpc.v1.events.EventSubscriptionResponse.ResultOwnerUpdate
     */
    class ResultOwnerUpdate implements GrpcMessage {
        static id: string;
        /**
         * Deserialize binary data to message
         * @param instance message instance
         */
        static deserializeBinary(bytes: ByteSource): ResultOwnerUpdate;
        /**
         * Check all the properties and set default protobuf values if necessary
         * @param _instance message instance
         */
        static refineValues(_instance: ResultOwnerUpdate): void;
        /**
         * Deserializes / reads binary message into message instance using provided binary reader
         * @param _instance message instance
         * @param _reader binary reader instance
         */
        static deserializeBinaryFromReader(_instance: ResultOwnerUpdate, _reader: BinaryReader): void;
        /**
         * Serializes a message to binary format using provided binary reader
         * @param _instance message instance
         * @param _writer binary writer instance
         */
        static serializeBinaryToWriter(_instance: ResultOwnerUpdate, _writer: BinaryWriter): void;
        private _resultId;
        private _previousOwnerId;
        private _currentOwnerId;
        /**
         * Message constructor. Initializes the properties and applies default Protobuf values if necessary
         * @param _value initial values object or instance of ResultOwnerUpdate to deeply clone from
         */
        constructor(_value?: RecursivePartial<ResultOwnerUpdate.AsObject>);
        get resultId(): string;
        set resultId(value: string);
        get previousOwnerId(): string;
        set previousOwnerId(value: string);
        get currentOwnerId(): string;
        set currentOwnerId(value: string);
        /**
         * Serialize message to binary data
         * @param instance message instance
         */
        serializeBinary(): Uint8Array;
        /**
         * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
         */
        toObject(): ResultOwnerUpdate.AsObject;
        /**
         * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
         */
        toJSON(): ResultOwnerUpdate.AsObject;
        /**
         * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
         * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
         * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
         */
        toProtobufJSON(options?: ToProtobufJSONOptions): ResultOwnerUpdate.AsProtobufJSON;
    }
    namespace ResultOwnerUpdate {
        /**
         * Standard JavaScript object representation for ResultOwnerUpdate
         */
        interface AsObject {
            resultId: string;
            previousOwnerId: string;
            currentOwnerId: string;
        }
        /**
         * Protobuf JSON representation for ResultOwnerUpdate
         */
        interface AsProtobufJSON {
            resultId: string;
            previousOwnerId: string;
            currentOwnerId: string;
        }
    }
    /**
     * Message implementation for armonik.api.grpc.v1.events.EventSubscriptionResponse.NewTask
     */
    class NewTask implements GrpcMessage {
        static id: string;
        /**
         * Deserialize binary data to message
         * @param instance message instance
         */
        static deserializeBinary(bytes: ByteSource): NewTask;
        /**
         * Check all the properties and set default protobuf values if necessary
         * @param _instance message instance
         */
        static refineValues(_instance: NewTask): void;
        /**
         * Deserializes / reads binary message into message instance using provided binary reader
         * @param _instance message instance
         * @param _reader binary reader instance
         */
        static deserializeBinaryFromReader(_instance: NewTask, _reader: BinaryReader): void;
        /**
         * Serializes a message to binary format using provided binary reader
         * @param _instance message instance
         * @param _writer binary writer instance
         */
        static serializeBinaryToWriter(_instance: NewTask, _writer: BinaryWriter): void;
        private _taskId;
        private _payloadId;
        private _originTaskId;
        private _status;
        private _expectedOutputKeys;
        private _dataDependencies;
        private _retryOfIds;
        private _parentTaskIds;
        /**
         * Message constructor. Initializes the properties and applies default Protobuf values if necessary
         * @param _value initial values object or instance of NewTask to deeply clone from
         */
        constructor(_value?: RecursivePartial<NewTask.AsObject>);
        get taskId(): string;
        set taskId(value: string);
        get payloadId(): string;
        set payloadId(value: string);
        get originTaskId(): string;
        set originTaskId(value: string);
        get status(): armonikApiGrpcV1Task_status003.TaskStatus;
        set status(value: armonikApiGrpcV1Task_status003.TaskStatus);
        get expectedOutputKeys(): string[];
        set expectedOutputKeys(value: string[]);
        get dataDependencies(): string[];
        set dataDependencies(value: string[]);
        get retryOfIds(): string[];
        set retryOfIds(value: string[]);
        get parentTaskIds(): string[];
        set parentTaskIds(value: string[]);
        /**
         * Serialize message to binary data
         * @param instance message instance
         */
        serializeBinary(): Uint8Array;
        /**
         * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
         */
        toObject(): NewTask.AsObject;
        /**
         * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
         */
        toJSON(): NewTask.AsObject;
        /**
         * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
         * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
         * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
         */
        toProtobufJSON(options?: ToProtobufJSONOptions): NewTask.AsProtobufJSON;
    }
    namespace NewTask {
        /**
         * Standard JavaScript object representation for NewTask
         */
        interface AsObject {
            taskId: string;
            payloadId: string;
            originTaskId: string;
            status: armonikApiGrpcV1Task_status003.TaskStatus;
            expectedOutputKeys: string[];
            dataDependencies: string[];
            retryOfIds: string[];
            parentTaskIds: string[];
        }
        /**
         * Protobuf JSON representation for NewTask
         */
        interface AsProtobufJSON {
            taskId: string;
            payloadId: string;
            originTaskId: string;
            status: string;
            expectedOutputKeys: string[];
            dataDependencies: string[];
            retryOfIds: string[];
            parentTaskIds: string[];
        }
    }
    /**
     * Message implementation for armonik.api.grpc.v1.events.EventSubscriptionResponse.NewResult
     */
    class NewResult implements GrpcMessage {
        static id: string;
        /**
         * Deserialize binary data to message
         * @param instance message instance
         */
        static deserializeBinary(bytes: ByteSource): NewResult;
        /**
         * Check all the properties and set default protobuf values if necessary
         * @param _instance message instance
         */
        static refineValues(_instance: NewResult): void;
        /**
         * Deserializes / reads binary message into message instance using provided binary reader
         * @param _instance message instance
         * @param _reader binary reader instance
         */
        static deserializeBinaryFromReader(_instance: NewResult, _reader: BinaryReader): void;
        /**
         * Serializes a message to binary format using provided binary reader
         * @param _instance message instance
         * @param _writer binary writer instance
         */
        static serializeBinaryToWriter(_instance: NewResult, _writer: BinaryWriter): void;
        private _resultId;
        private _ownerId;
        private _status;
        /**
         * Message constructor. Initializes the properties and applies default Protobuf values if necessary
         * @param _value initial values object or instance of NewResult to deeply clone from
         */
        constructor(_value?: RecursivePartial<NewResult.AsObject>);
        get resultId(): string;
        set resultId(value: string);
        get ownerId(): string;
        set ownerId(value: string);
        get status(): armonikApiGrpcV1Result_status001.ResultStatus;
        set status(value: armonikApiGrpcV1Result_status001.ResultStatus);
        /**
         * Serialize message to binary data
         * @param instance message instance
         */
        serializeBinary(): Uint8Array;
        /**
         * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
         */
        toObject(): NewResult.AsObject;
        /**
         * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
         */
        toJSON(): NewResult.AsObject;
        /**
         * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
         * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
         * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
         */
        toProtobufJSON(options?: ToProtobufJSONOptions): NewResult.AsProtobufJSON;
    }
    namespace NewResult {
        /**
         * Standard JavaScript object representation for NewResult
         */
        interface AsObject {
            resultId: string;
            ownerId: string;
            status: armonikApiGrpcV1Result_status001.ResultStatus;
        }
        /**
         * Protobuf JSON representation for NewResult
         */
        interface AsProtobufJSON {
            resultId: string;
            ownerId: string;
            status: string;
        }
    }
}
