import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CloudWatchMetric } from "./CloudWatchMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DatadogMetric } from "./DatadogMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1GraphiteMetric } from "./GraphiteMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1InfluxdbMetric } from "./InfluxdbMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1JobMetric } from "./JobMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1KayentaMetric } from "./KayentaMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NewRelicMetric } from "./NewRelicMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PrometheusMetric } from "./PrometheusMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SkyWalkingMetric } from "./SkyWalkingMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1WavefrontMetric } from "./WavefrontMetric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1WebMetric } from "./WebMetric.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * MetricProvider which external system to use to verify the analysis
 * Only one of the fields in this struct should be non-nil
 */
export interface IMetricProvider {
    /**
     * CloudWatch specifies the cloudWatch metric to query
     */
    "cloudWatch"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CloudWatchMetric;
    /**
     * Datadog specifies a datadog metric to query
     */
    "datadog"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DatadogMetric;
    /**
     * Graphite specifies the Graphite metric to query
     */
    "graphite"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1GraphiteMetric;
    /**
     * Influxdb specifies the influxdb metric to query
     */
    "influxdb"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1InfluxdbMetric;
    /**
     * Job specifies the job metric run
     */
    "job"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1JobMetric;
    /**
     * Kayenta specifies a Kayenta metric
     */
    "kayenta"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1KayentaMetric;
    /**
     * NewRelic specifies the newrelic metric to query
     */
    "newRelic"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NewRelicMetric;
    /**
     * Plugin specifies the hashicorp go-plugin metric to query
     */
    "plugin"?: {};
    /**
     * Prometheus specifies the prometheus metric to query
     */
    "prometheus"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PrometheusMetric;
    /**
     * SkyWalking specifies the skywalking metric to query
     */
    "skywalking"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SkyWalkingMetric;
    /**
     * Wavefront specifies the wavefront metric to query
     */
    "wavefront"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1WavefrontMetric;
    /**
     * Web specifies a generic HTTP web metric
     */
    "web"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1WebMetric;
}
/**
 * MetricProvider which external system to use to verify the analysis
 * Only one of the fields in this struct should be non-nil
 */
export declare class MetricProvider extends Model<IMetricProvider> implements IMetricProvider {
    "cloudWatch"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CloudWatchMetric;
    "datadog"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DatadogMetric;
    "graphite"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1GraphiteMetric;
    "influxdb"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1InfluxdbMetric;
    "job"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1JobMetric;
    "kayenta"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1KayentaMetric;
    "newRelic"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NewRelicMetric;
    "plugin"?: {};
    "prometheus"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PrometheusMetric;
    "skywalking"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SkyWalkingMetric;
    "wavefront"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1WavefrontMetric;
    "web"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1WebMetric;
    constructor(data?: ModelData<IMetricProvider>);
}
export type { IMetricProvider as IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MetricProvider, MetricProvider as ComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MetricProvider };
