// package: 
// file: browser/BrowserPerfCompat.proto

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

import * as grpc from "@grpc/grpc-js";
import * as browser_BrowserPerfCompat_pb from "../browser/BrowserPerfCompat_pb";
import * as common_Common_pb from "../common/Common_pb";
import * as browser_BrowserPerf_pb from "../browser/BrowserPerf_pb";

interface IBrowserPerfServiceService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    collectPerfData: IBrowserPerfServiceService_IcollectPerfData;
    collectErrorLogs: IBrowserPerfServiceService_IcollectErrorLogs;
}

interface IBrowserPerfServiceService_IcollectPerfData extends grpc.MethodDefinition<browser_BrowserPerf_pb.BrowserPerfData, common_Common_pb.Commands> {
    path: "/BrowserPerfService/collectPerfData";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<browser_BrowserPerf_pb.BrowserPerfData>;
    requestDeserialize: grpc.deserialize<browser_BrowserPerf_pb.BrowserPerfData>;
    responseSerialize: grpc.serialize<common_Common_pb.Commands>;
    responseDeserialize: grpc.deserialize<common_Common_pb.Commands>;
}
interface IBrowserPerfServiceService_IcollectErrorLogs extends grpc.MethodDefinition<browser_BrowserPerf_pb.BrowserErrorLog, common_Common_pb.Commands> {
    path: "/BrowserPerfService/collectErrorLogs";
    requestStream: true;
    responseStream: false;
    requestSerialize: grpc.serialize<browser_BrowserPerf_pb.BrowserErrorLog>;
    requestDeserialize: grpc.deserialize<browser_BrowserPerf_pb.BrowserErrorLog>;
    responseSerialize: grpc.serialize<common_Common_pb.Commands>;
    responseDeserialize: grpc.deserialize<common_Common_pb.Commands>;
}

export const BrowserPerfServiceService: IBrowserPerfServiceService;

export interface IBrowserPerfServiceServer extends grpc.UntypedServiceImplementation {
    collectPerfData: grpc.handleUnaryCall<browser_BrowserPerf_pb.BrowserPerfData, common_Common_pb.Commands>;
    collectErrorLogs: grpc.handleClientStreamingCall<browser_BrowserPerf_pb.BrowserErrorLog, common_Common_pb.Commands>;
}

export interface IBrowserPerfServiceClient {
    collectPerfData(request: browser_BrowserPerf_pb.BrowserPerfData, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    collectPerfData(request: browser_BrowserPerf_pb.BrowserPerfData, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    collectPerfData(request: browser_BrowserPerf_pb.BrowserPerfData, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    collectErrorLogs(callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientWritableStream<browser_BrowserPerf_pb.BrowserErrorLog>;
    collectErrorLogs(metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientWritableStream<browser_BrowserPerf_pb.BrowserErrorLog>;
    collectErrorLogs(options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientWritableStream<browser_BrowserPerf_pb.BrowserErrorLog>;
    collectErrorLogs(metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientWritableStream<browser_BrowserPerf_pb.BrowserErrorLog>;
}

export class BrowserPerfServiceClient extends grpc.Client implements IBrowserPerfServiceClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public collectPerfData(request: browser_BrowserPerf_pb.BrowserPerfData, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    public collectPerfData(request: browser_BrowserPerf_pb.BrowserPerfData, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    public collectPerfData(request: browser_BrowserPerf_pb.BrowserPerfData, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientUnaryCall;
    public collectErrorLogs(callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientWritableStream<browser_BrowserPerf_pb.BrowserErrorLog>;
    public collectErrorLogs(metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientWritableStream<browser_BrowserPerf_pb.BrowserErrorLog>;
    public collectErrorLogs(options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientWritableStream<browser_BrowserPerf_pb.BrowserErrorLog>;
    public collectErrorLogs(metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: common_Common_pb.Commands) => void): grpc.ClientWritableStream<browser_BrowserPerf_pb.BrowserErrorLog>;
}
