import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncOperationResource } from "./SyncOperationResource.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSource } from "./ApplicationSource.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSources } from "./ApplicationSources.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncOptions } from "./SyncOptions.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategy } from "./SyncStrategy.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * SyncOperation contains details about a sync operation.
 */
export interface ISyncOperation {
    /**
     * SelfHealAttemptsCount contains the number of auto-heal attempts
     */
    "autoHealAttemptsCount"?: number;
    /**
     * DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync
     */
    "dryRun"?: boolean;
    /**
     * Manifests is an optional field that overrides sync source with a local directory for development
     */
    "manifests"?: Array<string>;
    /**
     * Prune specifies to delete resources from the cluster that are no longer tracked in git
     */
    "prune"?: boolean;
    /**
     * Resources describes which resources shall be part of the sync
     */
    "resources"?: Array<IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncOperationResource>;
    /**
     * Revision is the revision (Git) or chart version (Helm) which to sync the application to
     * If omitted, will use the revision specified in app spec.
     */
    "revision"?: string;
    /**
     * Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to
     * If omitted, will use the revision specified in app spec.
     */
    "revisions"?: Array<string>;
    /**
     * Source overrides the source definition set in the application.
     * This is typically set in a Rollback operation and is nil during a Sync operation
     */
    "source"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSource;
    /**
     * Sources overrides the source definition set in the application.
     * This is typically set in a Rollback operation and is nil during a Sync operation
     */
    "sources"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSources;
    /**
     * SyncOptions provide per-sync sync-options, e.g. Validate=false
     */
    "syncOptions"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncOptions;
    /**
     * SyncStrategy describes how to perform the sync
     */
    "syncStrategy"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategy;
}
/**
 * SyncOperation contains details about a sync operation.
 */
export declare class SyncOperation extends Model<ISyncOperation> implements ISyncOperation {
    "autoHealAttemptsCount"?: number;
    "dryRun"?: boolean;
    "manifests"?: Array<string>;
    "prune"?: boolean;
    "resources"?: Array<IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncOperationResource>;
    "revision"?: string;
    "revisions"?: Array<string>;
    "source"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSource;
    "sources"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1ApplicationSources;
    "syncOptions"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncOptions;
    "syncStrategy"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategy;
    constructor(data?: ModelData<ISyncOperation>);
}
export type { ISyncOperation as IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncOperation, SyncOperation as ComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncOperation };
