// package: skywalking.v3
// file: language-agent/CLRMetric.proto

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

import * as jspb from "google-protobuf";
import * as common_Common_pb from "../common/Common_pb";

export class CLRMetricCollection extends jspb.Message { 
    clearMetricsList(): void;
    getMetricsList(): Array<CLRMetric>;
    setMetricsList(value: Array<CLRMetric>): CLRMetricCollection;
    addMetrics(value?: CLRMetric, index?: number): CLRMetric;
    getService(): string;
    setService(value: string): CLRMetricCollection;
    getServiceinstance(): string;
    setServiceinstance(value: string): CLRMetricCollection;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): CLRMetricCollection.AsObject;
    static toObject(includeInstance: boolean, msg: CLRMetricCollection): CLRMetricCollection.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: CLRMetricCollection, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): CLRMetricCollection;
    static deserializeBinaryFromReader(message: CLRMetricCollection, reader: jspb.BinaryReader): CLRMetricCollection;
}

export namespace CLRMetricCollection {
    export type AsObject = {
        metricsList: Array<CLRMetric.AsObject>,
        service: string,
        serviceinstance: string,
    }
}

export class CLRMetric extends jspb.Message { 
    getTime(): number;
    setTime(value: number): CLRMetric;

    hasCpu(): boolean;
    clearCpu(): void;
    getCpu(): common_Common_pb.CPU | undefined;
    setCpu(value?: common_Common_pb.CPU): CLRMetric;

    hasGc(): boolean;
    clearGc(): void;
    getGc(): ClrGC | undefined;
    setGc(value?: ClrGC): CLRMetric;

    hasThread(): boolean;
    clearThread(): void;
    getThread(): ClrThread | undefined;
    setThread(value?: ClrThread): CLRMetric;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): CLRMetric.AsObject;
    static toObject(includeInstance: boolean, msg: CLRMetric): CLRMetric.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: CLRMetric, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): CLRMetric;
    static deserializeBinaryFromReader(message: CLRMetric, reader: jspb.BinaryReader): CLRMetric;
}

export namespace CLRMetric {
    export type AsObject = {
        time: number,
        cpu?: common_Common_pb.CPU.AsObject,
        gc?: ClrGC.AsObject,
        thread?: ClrThread.AsObject,
    }
}

export class ClrGC extends jspb.Message { 
    getGen0collectcount(): number;
    setGen0collectcount(value: number): ClrGC;
    getGen1collectcount(): number;
    setGen1collectcount(value: number): ClrGC;
    getGen2collectcount(): number;
    setGen2collectcount(value: number): ClrGC;
    getHeapmemory(): number;
    setHeapmemory(value: number): ClrGC;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ClrGC.AsObject;
    static toObject(includeInstance: boolean, msg: ClrGC): ClrGC.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ClrGC, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ClrGC;
    static deserializeBinaryFromReader(message: ClrGC, reader: jspb.BinaryReader): ClrGC;
}

export namespace ClrGC {
    export type AsObject = {
        gen0collectcount: number,
        gen1collectcount: number,
        gen2collectcount: number,
        heapmemory: number,
    }
}

export class ClrThread extends jspb.Message { 
    getAvailablecompletionportthreads(): number;
    setAvailablecompletionportthreads(value: number): ClrThread;
    getAvailableworkerthreads(): number;
    setAvailableworkerthreads(value: number): ClrThread;
    getMaxcompletionportthreads(): number;
    setMaxcompletionportthreads(value: number): ClrThread;
    getMaxworkerthreads(): number;
    setMaxworkerthreads(value: number): ClrThread;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ClrThread.AsObject;
    static toObject(includeInstance: boolean, msg: ClrThread): ClrThread.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ClrThread, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ClrThread;
    static deserializeBinaryFromReader(message: ClrThread, reader: jspb.BinaryReader): ClrThread;
}

export namespace ClrThread {
    export type AsObject = {
        availablecompletionportthreads: number,
        availableworkerthreads: number,
        maxcompletionportthreads: number,
        maxworkerthreads: number,
    }
}
