import { GrpcMessage, RecursivePartial, ToProtobufJSONOptions } from '@ngx-grpc/common';
import { BinaryReader, BinaryWriter, ByteSource } from 'google-protobuf';
import * as armonikApiGrpcV1002 from './filters-common.pb';
import * as armonikApiGrpcV1Session_status003 from './session-status.pb';
import * as armonikApiGrpcV1Sessions004 from './sessions-fields.pb';
/**
 * Message implementation for armonik.api.grpc.v1.sessions.FilterStatus
 */
export declare class FilterStatus implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): FilterStatus;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: FilterStatus): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: FilterStatus, _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: FilterStatus, _writer: BinaryWriter): void;
    private _value;
    private _operator;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of FilterStatus to deeply clone from
     */
    constructor(_value?: RecursivePartial<FilterStatus.AsObject>);
    get value(): armonikApiGrpcV1Session_status003.SessionStatus;
    set value(value: armonikApiGrpcV1Session_status003.SessionStatus);
    get operator(): armonikApiGrpcV1002.FilterStatusOperator;
    set operator(value: armonikApiGrpcV1002.FilterStatusOperator);
    /**
     * 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(): FilterStatus.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): FilterStatus.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): FilterStatus.AsProtobufJSON;
}
export declare namespace FilterStatus {
    /**
     * Standard JavaScript object representation for FilterStatus
     */
    interface AsObject {
        value: armonikApiGrpcV1Session_status003.SessionStatus;
        operator: armonikApiGrpcV1002.FilterStatusOperator;
    }
    /**
     * Protobuf JSON representation for FilterStatus
     */
    interface AsProtobufJSON {
        value: string;
        operator: string;
    }
}
/**
 * Message implementation for armonik.api.grpc.v1.sessions.FilterField
 */
export declare class FilterField implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): FilterField;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: FilterField): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: FilterField, _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: FilterField, _writer: BinaryWriter): void;
    private _field?;
    private _filterString?;
    private _filterNumber?;
    private _filterBoolean?;
    private _filterStatus?;
    private _filterDate?;
    private _filterArray?;
    private _filterDuration?;
    private _valueCondition;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of FilterField to deeply clone from
     */
    constructor(_value?: RecursivePartial<FilterField.AsObject>);
    get field(): armonikApiGrpcV1Sessions004.SessionField | undefined;
    set field(value: armonikApiGrpcV1Sessions004.SessionField | undefined);
    get filterString(): armonikApiGrpcV1002.FilterString | undefined;
    set filterString(value: armonikApiGrpcV1002.FilterString | undefined);
    get filterNumber(): armonikApiGrpcV1002.FilterNumber | undefined;
    set filterNumber(value: armonikApiGrpcV1002.FilterNumber | undefined);
    get filterBoolean(): armonikApiGrpcV1002.FilterBoolean | undefined;
    set filterBoolean(value: armonikApiGrpcV1002.FilterBoolean | undefined);
    get filterStatus(): FilterStatus | undefined;
    set filterStatus(value: FilterStatus | undefined);
    get filterDate(): armonikApiGrpcV1002.FilterDate | undefined;
    set filterDate(value: armonikApiGrpcV1002.FilterDate | undefined);
    get filterArray(): armonikApiGrpcV1002.FilterArray | undefined;
    set filterArray(value: armonikApiGrpcV1002.FilterArray | undefined);
    get filterDuration(): armonikApiGrpcV1002.FilterDuration | undefined;
    set filterDuration(value: armonikApiGrpcV1002.FilterDuration | undefined);
    get valueCondition(): FilterField.ValueConditionCase;
    /**
     * 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(): FilterField.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): FilterField.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): FilterField.AsProtobufJSON;
}
export declare namespace FilterField {
    /**
     * Standard JavaScript object representation for FilterField
     */
    interface AsObject {
        field?: armonikApiGrpcV1Sessions004.SessionField.AsObject;
        filterString?: armonikApiGrpcV1002.FilterString.AsObject;
        filterNumber?: armonikApiGrpcV1002.FilterNumber.AsObject;
        filterBoolean?: armonikApiGrpcV1002.FilterBoolean.AsObject;
        filterStatus?: FilterStatus.AsObject;
        filterDate?: armonikApiGrpcV1002.FilterDate.AsObject;
        filterArray?: armonikApiGrpcV1002.FilterArray.AsObject;
        filterDuration?: armonikApiGrpcV1002.FilterDuration.AsObject;
    }
    /**
     * Protobuf JSON representation for FilterField
     */
    interface AsProtobufJSON {
        field: armonikApiGrpcV1Sessions004.SessionField.AsProtobufJSON | null;
        filterString: armonikApiGrpcV1002.FilterString.AsProtobufJSON | null;
        filterNumber: armonikApiGrpcV1002.FilterNumber.AsProtobufJSON | null;
        filterBoolean: armonikApiGrpcV1002.FilterBoolean.AsProtobufJSON | null;
        filterStatus: FilterStatus.AsProtobufJSON | null;
        filterDate: armonikApiGrpcV1002.FilterDate.AsProtobufJSON | null;
        filterArray: armonikApiGrpcV1002.FilterArray.AsProtobufJSON | null;
        filterDuration: armonikApiGrpcV1002.FilterDuration.AsProtobufJSON | null;
    }
    enum ValueConditionCase {
        none = 0,
        filterString = 1,
        filterNumber = 2,
        filterBoolean = 3,
        filterStatus = 4,
        filterDate = 5,
        filterArray = 6,
        filterDuration = 7
    }
}
/**
 * Message implementation for armonik.api.grpc.v1.sessions.FiltersAnd
 */
export declare class FiltersAnd implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): FiltersAnd;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: FiltersAnd): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: FiltersAnd, _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: FiltersAnd, _writer: BinaryWriter): void;
    private _and?;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of FiltersAnd to deeply clone from
     */
    constructor(_value?: RecursivePartial<FiltersAnd.AsObject>);
    get and(): FilterField[] | undefined;
    set and(value: FilterField[] | undefined);
    /**
     * 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(): FiltersAnd.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): FiltersAnd.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): FiltersAnd.AsProtobufJSON;
}
export declare namespace FiltersAnd {
    /**
     * Standard JavaScript object representation for FiltersAnd
     */
    interface AsObject {
        and?: FilterField.AsObject[];
    }
    /**
     * Protobuf JSON representation for FiltersAnd
     */
    interface AsProtobufJSON {
        and: FilterField.AsProtobufJSON[] | null;
    }
}
/**
 * Message implementation for armonik.api.grpc.v1.sessions.Filters
 */
export declare class Filters implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): Filters;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: Filters): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: Filters, _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: Filters, _writer: BinaryWriter): void;
    private _or?;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of Filters to deeply clone from
     */
    constructor(_value?: RecursivePartial<Filters.AsObject>);
    get or(): FiltersAnd[] | undefined;
    set or(value: FiltersAnd[] | undefined);
    /**
     * 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(): Filters.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): Filters.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): Filters.AsProtobufJSON;
}
export declare namespace Filters {
    /**
     * Standard JavaScript object representation for Filters
     */
    interface AsObject {
        or?: FiltersAnd.AsObject[];
    }
    /**
     * Protobuf JSON representation for Filters
     */
    interface AsProtobufJSON {
        or: FiltersAnd.AsProtobufJSON[] | null;
    }
}
