import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Argument } from "./Argument.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DryRun } from "./DryRun.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MeasurementRetention } from "./MeasurementRetention.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Metric } from "./Metric.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TTLStrategy } from "./TTLStrategy.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * AnalysisRunSpec is the spec for a AnalysisRun resource
 */
export interface IAnalysisRunSpec {
    /**
     * Args are the list of arguments used in this run
     */
    "args"?: Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Argument>;
    /**
     * DryRun object contains the settings for running the analysis in Dry-Run mode
     */
    "dryRun"?: Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DryRun>;
    /**
     * MeasurementRetention object contains the settings for retaining the number of measurements during the analysis
     */
    "measurementRetention"?: Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MeasurementRetention>;
    /**
     * Metrics contains the list of metrics to query as part of an analysis run
     */
    "metrics": Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Metric>;
    /**
     * Terminate is used to prematurely stop the run (e.g. rollout completed and analysis is no longer desired)
     */
    "terminate"?: boolean;
    /**
     * TTLStrategy object contains the strategy for the time to live depending on if the analysis succeeded or failed
     */
    "ttlStrategy"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TTLStrategy;
}
/**
 * AnalysisRunSpec is the spec for a AnalysisRun resource
 */
export declare class AnalysisRunSpec extends Model<IAnalysisRunSpec> implements IAnalysisRunSpec {
    "args"?: Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Argument>;
    "dryRun"?: Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1DryRun>;
    "measurementRetention"?: Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1MeasurementRetention>;
    "metrics": Array<IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Metric>;
    "terminate"?: boolean;
    "ttlStrategy"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TTLStrategy;
    constructor(data?: ModelData<IAnalysisRunSpec>);
}
export type { IAnalysisRunSpec as IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunSpec, AnalysisRunSpec as ComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunSpec };
