// package: 
// file: management/ManagementCompat.proto

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

import * as grpc from "@grpc/grpc-js";
import * as management_ManagementCompat_pb from "../management/ManagementCompat_pb";
import * as common_Common_pb from "../common/Common_pb";
import * as management_Management_pb from "../management/Management_pb";

interface IManagementServiceService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    reportInstanceProperties: IManagementServiceService_IreportInstanceProperties;
    keepAlive: IManagementServiceService_IkeepAlive;
}

interface IManagementServiceService_IreportInstanceProperties extends grpc.MethodDefinition<management_Management_pb.InstanceProperties, common_Common_pb.Commands> {
    path: "/ManagementService/reportInstanceProperties";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<management_Management_pb.InstanceProperties>;
    requestDeserialize: grpc.deserialize<management_Management_pb.InstanceProperties>;
    responseSerialize: grpc.serialize<common_Common_pb.Commands>;
    responseDeserialize: grpc.deserialize<common_Common_pb.Commands>;
}
interface IManagementServiceService_IkeepAlive extends grpc.MethodDefinition<management_Management_pb.InstancePingPkg, common_Common_pb.Commands> {
    path: "/ManagementService/keepAlive";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<management_Management_pb.InstancePingPkg>;
    requestDeserialize: grpc.deserialize<management_Management_pb.InstancePingPkg>;
    responseSerialize: grpc.serialize<common_Common_pb.Commands>;
    responseDeserialize: grpc.deserialize<common_Common_pb.Commands>;
}

export const ManagementServiceService: IManagementServiceService;

export interface IManagementServiceServer extends grpc.UntypedServiceImplementation {
    reportInstanceProperties: grpc.handleUnaryCall<management_Management_pb.InstanceProperties, common_Common_pb.Commands>;
    keepAlive: grpc.handleUnaryCall<management_Management_pb.InstancePingPkg, common_Common_pb.Commands>;
}

export interface IManagementServiceClient {
    reportInstanceProperties(request: management_Management_pb.InstanceProperties, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    reportInstanceProperties(request: management_Management_pb.InstanceProperties, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    reportInstanceProperties(request: management_Management_pb.InstanceProperties, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    keepAlive(request: management_Management_pb.InstancePingPkg, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    keepAlive(request: management_Management_pb.InstancePingPkg, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    keepAlive(request: management_Management_pb.InstancePingPkg, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
}

export class ManagementServiceClient extends grpc.Client implements IManagementServiceClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public reportInstanceProperties(request: management_Management_pb.InstanceProperties, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    public reportInstanceProperties(request: management_Management_pb.InstanceProperties, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    public reportInstanceProperties(request: management_Management_pb.InstanceProperties, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    public keepAlive(request: management_Management_pb.InstancePingPkg, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    public keepAlive(request: management_Management_pb.InstancePingPkg, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    public keepAlive(request: management_Management_pb.InstancePingPkg, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
}
