import { GrpcMessage, RecursivePartial, ToProtobufJSONOptions } from '@ngx-grpc/common';
import { BinaryReader, BinaryWriter, ByteSource } from 'google-protobuf';
import * as armonikApiGrpcV1Partitions001 from './partitions-fields.pb';
import * as armonikApiGrpcV1Partitions002 from './partitions-filters.pb';
import * as armonikApiGrpcV1Sort_direction003 from './sort-direction.pb';
/**
 * Message implementation for armonik.api.grpc.v1.partitions.PartitionRaw
 */
export declare class PartitionRaw implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): PartitionRaw;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: PartitionRaw): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: PartitionRaw, _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: PartitionRaw, _writer: BinaryWriter): void;
    private _id;
    private _parentPartitionIds;
    private _podReserved;
    private _podMax;
    private _podConfiguration;
    private _preemptionPercentage;
    private _priority;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of PartitionRaw to deeply clone from
     */
    constructor(_value?: RecursivePartial<PartitionRaw.AsObject>);
    get id(): string;
    set id(value: string);
    get parentPartitionIds(): string[];
    set parentPartitionIds(value: string[]);
    get podReserved(): string;
    set podReserved(value: string);
    get podMax(): string;
    set podMax(value: string);
    get podConfiguration(): {
        [prop: string]: string;
    };
    set podConfiguration(value: {
        [prop: string]: string;
    });
    get preemptionPercentage(): string;
    set preemptionPercentage(value: string);
    get priority(): string;
    set priority(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(): PartitionRaw.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): PartitionRaw.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): PartitionRaw.AsProtobufJSON;
}
export declare namespace PartitionRaw {
    /**
     * Standard JavaScript object representation for PartitionRaw
     */
    interface AsObject {
        id: string;
        parentPartitionIds: string[];
        podReserved: string;
        podMax: string;
        podConfiguration: {
            [prop: string]: string;
        };
        preemptionPercentage: string;
        priority: string;
    }
    /**
     * Protobuf JSON representation for PartitionRaw
     */
    interface AsProtobufJSON {
        id: string;
        parentPartitionIds: string[];
        podReserved: string;
        podMax: string;
        podConfiguration: {
            [prop: string]: string;
        };
        preemptionPercentage: string;
        priority: string;
    }
    /**
     * Message implementation for armonik.api.grpc.v1.partitions.PartitionRaw.PodConfigurationEntry
     */
    class PodConfigurationEntry implements GrpcMessage {
        static id: string;
        /**
         * Deserialize binary data to message
         * @param instance message instance
         */
        static deserializeBinary(bytes: ByteSource): PodConfigurationEntry;
        /**
         * Check all the properties and set default protobuf values if necessary
         * @param _instance message instance
         */
        static refineValues(_instance: PodConfigurationEntry): void;
        /**
         * Deserializes / reads binary message into message instance using provided binary reader
         * @param _instance message instance
         * @param _reader binary reader instance
         */
        static deserializeBinaryFromReader(_instance: PodConfigurationEntry, _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: PodConfigurationEntry, _writer: BinaryWriter): void;
        private _key;
        private _value;
        /**
         * Message constructor. Initializes the properties and applies default Protobuf values if necessary
         * @param _value initial values object or instance of PodConfigurationEntry to deeply clone from
         */
        constructor(_value?: RecursivePartial<PodConfigurationEntry.AsObject>);
        get key(): string;
        set key(value: string);
        get value(): string;
        set value(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(): PodConfigurationEntry.AsObject;
        /**
         * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
         */
        toJSON(): PodConfigurationEntry.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): PodConfigurationEntry.AsProtobufJSON;
    }
    namespace PodConfigurationEntry {
        /**
         * Standard JavaScript object representation for PodConfigurationEntry
         */
        interface AsObject {
            key: string;
            value: string;
        }
        /**
         * Protobuf JSON representation for PodConfigurationEntry
         */
        interface AsProtobufJSON {
            key: string;
            value: string;
        }
    }
}
/**
 * Message implementation for armonik.api.grpc.v1.partitions.ListPartitionsRequest
 */
export declare class ListPartitionsRequest implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): ListPartitionsRequest;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: ListPartitionsRequest): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: ListPartitionsRequest, _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: ListPartitionsRequest, _writer: BinaryWriter): void;
    private _page;
    private _pageSize;
    private _filters?;
    private _sort?;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of ListPartitionsRequest to deeply clone from
     */
    constructor(_value?: RecursivePartial<ListPartitionsRequest.AsObject>);
    get page(): number;
    set page(value: number);
    get pageSize(): number;
    set pageSize(value: number);
    get filters(): armonikApiGrpcV1Partitions002.Filters | undefined;
    set filters(value: armonikApiGrpcV1Partitions002.Filters | undefined);
    get sort(): ListPartitionsRequest.Sort | undefined;
    set sort(value: ListPartitionsRequest.Sort | 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(): ListPartitionsRequest.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): ListPartitionsRequest.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): ListPartitionsRequest.AsProtobufJSON;
}
export declare namespace ListPartitionsRequest {
    /**
     * Standard JavaScript object representation for ListPartitionsRequest
     */
    interface AsObject {
        page: number;
        pageSize: number;
        filters?: armonikApiGrpcV1Partitions002.Filters.AsObject;
        sort?: ListPartitionsRequest.Sort.AsObject;
    }
    /**
     * Protobuf JSON representation for ListPartitionsRequest
     */
    interface AsProtobufJSON {
        page: number;
        pageSize: number;
        filters: armonikApiGrpcV1Partitions002.Filters.AsProtobufJSON | null;
        sort: ListPartitionsRequest.Sort.AsProtobufJSON | null;
    }
    /**
     * Message implementation for armonik.api.grpc.v1.partitions.ListPartitionsRequest.Sort
     */
    class Sort implements GrpcMessage {
        static id: string;
        /**
         * Deserialize binary data to message
         * @param instance message instance
         */
        static deserializeBinary(bytes: ByteSource): Sort;
        /**
         * Check all the properties and set default protobuf values if necessary
         * @param _instance message instance
         */
        static refineValues(_instance: Sort): void;
        /**
         * Deserializes / reads binary message into message instance using provided binary reader
         * @param _instance message instance
         * @param _reader binary reader instance
         */
        static deserializeBinaryFromReader(_instance: Sort, _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: Sort, _writer: BinaryWriter): void;
        private _field?;
        private _direction;
        /**
         * Message constructor. Initializes the properties and applies default Protobuf values if necessary
         * @param _value initial values object or instance of Sort to deeply clone from
         */
        constructor(_value?: RecursivePartial<Sort.AsObject>);
        get field(): armonikApiGrpcV1Partitions001.PartitionField | undefined;
        set field(value: armonikApiGrpcV1Partitions001.PartitionField | undefined);
        get direction(): armonikApiGrpcV1Sort_direction003.SortDirection;
        set direction(value: armonikApiGrpcV1Sort_direction003.SortDirection);
        /**
         * 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(): Sort.AsObject;
        /**
         * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
         */
        toJSON(): Sort.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): Sort.AsProtobufJSON;
    }
    namespace Sort {
        /**
         * Standard JavaScript object representation for Sort
         */
        interface AsObject {
            field?: armonikApiGrpcV1Partitions001.PartitionField.AsObject;
            direction: armonikApiGrpcV1Sort_direction003.SortDirection;
        }
        /**
         * Protobuf JSON representation for Sort
         */
        interface AsProtobufJSON {
            field: armonikApiGrpcV1Partitions001.PartitionField.AsProtobufJSON | null;
            direction: string;
        }
    }
}
/**
 * Message implementation for armonik.api.grpc.v1.partitions.ListPartitionsResponse
 */
export declare class ListPartitionsResponse implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): ListPartitionsResponse;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: ListPartitionsResponse): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: ListPartitionsResponse, _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: ListPartitionsResponse, _writer: BinaryWriter): void;
    private _partitions?;
    private _page;
    private _pageSize;
    private _total;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of ListPartitionsResponse to deeply clone from
     */
    constructor(_value?: RecursivePartial<ListPartitionsResponse.AsObject>);
    get partitions(): PartitionRaw[] | undefined;
    set partitions(value: PartitionRaw[] | undefined);
    get page(): number;
    set page(value: number);
    get pageSize(): number;
    set pageSize(value: number);
    get total(): number;
    set total(value: number);
    /**
     * 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(): ListPartitionsResponse.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): ListPartitionsResponse.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): ListPartitionsResponse.AsProtobufJSON;
}
export declare namespace ListPartitionsResponse {
    /**
     * Standard JavaScript object representation for ListPartitionsResponse
     */
    interface AsObject {
        partitions?: PartitionRaw.AsObject[];
        page: number;
        pageSize: number;
        total: number;
    }
    /**
     * Protobuf JSON representation for ListPartitionsResponse
     */
    interface AsProtobufJSON {
        partitions: PartitionRaw.AsProtobufJSON[] | null;
        page: number;
        pageSize: number;
        total: number;
    }
}
/**
 * Message implementation for armonik.api.grpc.v1.partitions.GetPartitionRequest
 */
export declare class GetPartitionRequest implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): GetPartitionRequest;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: GetPartitionRequest): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: GetPartitionRequest, _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: GetPartitionRequest, _writer: BinaryWriter): void;
    private _id;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of GetPartitionRequest to deeply clone from
     */
    constructor(_value?: RecursivePartial<GetPartitionRequest.AsObject>);
    get id(): string;
    set id(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(): GetPartitionRequest.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): GetPartitionRequest.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): GetPartitionRequest.AsProtobufJSON;
}
export declare namespace GetPartitionRequest {
    /**
     * Standard JavaScript object representation for GetPartitionRequest
     */
    interface AsObject {
        id: string;
    }
    /**
     * Protobuf JSON representation for GetPartitionRequest
     */
    interface AsProtobufJSON {
        id: string;
    }
}
/**
 * Message implementation for armonik.api.grpc.v1.partitions.GetPartitionResponse
 */
export declare class GetPartitionResponse implements GrpcMessage {
    static id: string;
    /**
     * Deserialize binary data to message
     * @param instance message instance
     */
    static deserializeBinary(bytes: ByteSource): GetPartitionResponse;
    /**
     * Check all the properties and set default protobuf values if necessary
     * @param _instance message instance
     */
    static refineValues(_instance: GetPartitionResponse): void;
    /**
     * Deserializes / reads binary message into message instance using provided binary reader
     * @param _instance message instance
     * @param _reader binary reader instance
     */
    static deserializeBinaryFromReader(_instance: GetPartitionResponse, _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: GetPartitionResponse, _writer: BinaryWriter): void;
    private _partition?;
    /**
     * Message constructor. Initializes the properties and applies default Protobuf values if necessary
     * @param _value initial values object or instance of GetPartitionResponse to deeply clone from
     */
    constructor(_value?: RecursivePartial<GetPartitionResponse.AsObject>);
    get partition(): PartitionRaw | undefined;
    set partition(value: PartitionRaw | 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(): GetPartitionResponse.AsObject;
    /**
     * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
     */
    toJSON(): GetPartitionResponse.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): GetPartitionResponse.AsProtobufJSON;
}
export declare namespace GetPartitionResponse {
    /**
     * Standard JavaScript object representation for GetPartitionResponse
     */
    interface AsObject {
        partition?: PartitionRaw.AsObject;
    }
    /**
     * Protobuf JSON representation for GetPartitionResponse
     */
    interface AsProtobufJSON {
        partition: PartitionRaw.AsProtobufJSON | null;
    }
}
