import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceDirectory } from "./ApplicationSourceDirectory.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceHelm } from "./ApplicationSourceHelm.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceKustomize } from "./ApplicationSourceKustomize.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourcePlugin } from "./ApplicationSourcePlugin.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * ApplicationSource contains all required information about the source of an application
 */
export interface IApplicationSource {
    /**
     * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
     */
    "chart"?: string;
    /**
     * Directory holds path/directory specific options
     */
    "directory"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceDirectory;
    /**
     * Helm holds helm specific options
     */
    "helm"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceHelm;
    /**
     * Kustomize holds kustomize specific options
     */
    "kustomize"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceKustomize;
    /**
     * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
     */
    "name"?: string;
    /**
     * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
     */
    "path"?: string;
    /**
     * Plugin holds config management plugin specific options
     */
    "plugin"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourcePlugin;
    /**
     * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
     */
    "ref"?: string;
    /**
     * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
     */
    "repoURL": string;
    /**
     * TargetRevision defines the revision of the source to sync the application to.
     * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
     * In case of Helm, this is a semver tag for the Chart's version.
     */
    "targetRevision"?: string;
}
/**
 * ApplicationSource contains all required information about the source of an application
 */
export declare class ApplicationSource extends Model<IApplicationSource> implements IApplicationSource {
    "chart"?: string;
    "directory"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceDirectory;
    "helm"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceHelm;
    "kustomize"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourceKustomize;
    "name"?: string;
    "path"?: string;
    "plugin"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSourcePlugin;
    "ref"?: string;
    "repoURL": string;
    "targetRevision"?: string;
    constructor(data?: ModelData<IApplicationSource>);
}
export type { IApplicationSource as IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSource, ApplicationSource as ComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSource };
