import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Measurement } from "./Measurement.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisPhase } from "./AnalysisPhase.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * MetricResult contain a list of the most recent measurements for a single metric along with
 * counters on how often the measurement
 */
export interface IMetricResult {
    /**
     * ConsecutiveError is the number of times an error was encountered during measurement in succession
     * Resets to zero when non-errors are encountered
     */
    "consecutiveError"?: number;
    /**
     * ConsecutiveSuccess is the number of times a measurement was successful in succession
     * Resets to zero when failures, inconclusive measurements, or errors are encountered
     */
    "consecutiveSuccess"?: number;
    /**
     * Count is the number of times the metric was measured without Error
     * This is equal to the sum of Successful, Failed, Inconclusive
     */
    "count"?: number;
    /**
     * DryRun indicates whether this metric is running in a dry-run mode or not
     */
    "dryRun"?: boolean;
    /**
     * Error is the number of times an error was encountered during measurement
     */
    "error"?: number;
    /**
     * Failed is the number of times the metric was measured Failed
     */
    "failed"?: number;
    /**
     * Inconclusive is the number of times the metric was measured Inconclusive
     */
    "inconclusive"?: number;
    /**
     * Measurements holds the most recent measurements collected for the metric
     */
    "measurements"?: Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Measurement>;
    /**
     * Message contains a message describing current condition (e.g. error messages)
     */
    "message"?: string;
    /**
     * Metadata stores additional metadata about this metric. It is used by different providers to store
     * the final state which gets used while taking measurements. For example, Prometheus uses this field
     * to store the final resolved query after substituting the template arguments.
     */
    "metadata"?: {
        [key: string]: string;
    };
    /**
     * Name is the name of the metric
     */
    "name": string;
    /**
     * Phase is the overall aggregate status of the metric
     */
    "phase": IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisPhase;
    /**
     * Successful is the number of times the metric was measured Successful
     */
    "successful"?: number;
}
/**
 * MetricResult contain a list of the most recent measurements for a single metric along with
 * counters on how often the measurement
 */
export declare class MetricResult extends Model<IMetricResult> implements IMetricResult {
    "consecutiveError"?: number;
    "consecutiveSuccess"?: number;
    "count"?: number;
    "dryRun"?: boolean;
    "error"?: number;
    "failed"?: number;
    "inconclusive"?: number;
    "measurements"?: Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Measurement>;
    "message"?: string;
    "metadata"?: {
        [key: string]: string;
    };
    "name": string;
    "phase": IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisPhase;
    "successful"?: number;
    constructor(data?: ModelData<IMetricResult>);
}
export type { IMetricResult as IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MetricResult, MetricResult as ComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MetricResult };
