import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationDestination } from "./ApplicationDestination.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1IgnoreDifferences } from "./IgnoreDifferences.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1Info } from "./Info.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSource } from "./ApplicationSource.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SourceHydrator } from "./SourceHydrator.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSources } from "./ApplicationSources.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncPolicy } from "./SyncPolicy.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision.
 */
export interface IApplicationSpec {
    /**
     * Destination is a reference to the target Kubernetes server and namespace
     */
    "destination": IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationDestination;
    /**
     * IgnoreDifferences is a list of resources and their fields which should be ignored during comparison
     */
    "ignoreDifferences"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1IgnoreDifferences;
    /**
     * Info contains a list of information (URLs, email addresses, and plain text) that relates to the application
     */
    "info"?: Array<IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1Info>;
    /**
     * Project is a reference to the project this application belongs to.
     * The empty string means that application belongs to the 'default' project.
     */
    "project": string;
    /**
     * RevisionHistoryLimit limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions.
     * This should only be changed in exceptional circumstances.
     * Setting to zero will store no history. This will reduce storage used.
     * Increasing will increase the space used to store the history, so we do not recommend increasing it.
     * Default is 10.
     */
    "revisionHistoryLimit"?: number;
    /**
     * Source is a reference to the location of the application's manifests or chart
     */
    "source"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSource;
    /**
     * SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.
     */
    "sourceHydrator"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SourceHydrator;
    /**
     * Sources is a reference to the location of the application's manifests or chart
     */
    "sources"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSources;
    /**
     * SyncPolicy controls when and how a sync will be performed
     */
    "syncPolicy"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncPolicy;
}
/**
 * ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision.
 */
export declare class ApplicationSpec extends Model<IApplicationSpec> implements IApplicationSpec {
    "destination": IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationDestination;
    "ignoreDifferences"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1IgnoreDifferences;
    "info"?: Array<IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1Info>;
    "project": string;
    "revisionHistoryLimit"?: number;
    "source"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSource;
    "sourceHydrator"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SourceHydrator;
    "sources"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSources;
    "syncPolicy"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncPolicy;
    constructor(data?: ModelData<IApplicationSpec>);
}
export type { IApplicationSpec as IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSpec, ApplicationSpec as ComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSpec };
