import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategyApply } from "./SyncStrategyApply.js";
import { IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategyHook } from "./SyncStrategyHook.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * SyncStrategy controls the manner in which a sync is performed
 */
export interface ISyncStrategy {
    /**
     * Apply will perform a `kubectl apply` to perform the sync.
     */
    "apply"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategyApply;
    /**
     * Hook will submit any referenced resources to perform the sync. This is the default strategy
     */
    "hook"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategyHook;
}
/**
 * SyncStrategy controls the manner in which a sync is performed
 */
export declare class SyncStrategy extends Model<ISyncStrategy> implements ISyncStrategy {
    "apply"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategyApply;
    "hook"?: IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategyHook;
    constructor(data?: ModelData<ISyncStrategy>);
}
export type { ISyncStrategy as IComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategy, SyncStrategy as ComGithubArgoprojArgoCdV3PkgApisApplicationV1alpha1SyncStrategy };
