import { IComGithubFluxcdImageAutomationControllerApiV1GitCheckoutSpec } from "./GitCheckoutSpec.js";
import { IComGithubFluxcdImageAutomationControllerApiV1CommitSpec } from "./CommitSpec.js";
import { IComGithubFluxcdImageAutomationControllerApiV1PushSpec } from "./PushSpec.js";
import { ModelData, Model } from "@kubernetes-models/base";
export interface IGitSpec {
    /**
     * Checkout gives the parameters for cloning the git repository,
     * ready to make changes. If not present, the `spec.ref` field from the
     * referenced `GitRepository` or its default will be used.
     */
    "checkout"?: IComGithubFluxcdImageAutomationControllerApiV1GitCheckoutSpec;
    /**
     * Commit specifies how to commit to the git repository.
     */
    "commit": IComGithubFluxcdImageAutomationControllerApiV1CommitSpec;
    /**
     * Push specifies how and where to push commits made by the
     * automation. If missing, commits are pushed (back) to
     * `.spec.checkout.branch` or its default.
     */
    "push"?: IComGithubFluxcdImageAutomationControllerApiV1PushSpec;
}
export declare class GitSpec extends Model<IGitSpec> implements IGitSpec {
    "checkout"?: IComGithubFluxcdImageAutomationControllerApiV1GitCheckoutSpec;
    "commit": IComGithubFluxcdImageAutomationControllerApiV1CommitSpec;
    "push"?: IComGithubFluxcdImageAutomationControllerApiV1PushSpec;
    constructor(data?: ModelData<IGitSpec>);
}
export type { IGitSpec as IComGithubFluxcdImageAutomationControllerApiV1GitSpec, GitSpec as ComGithubFluxcdImageAutomationControllerApiV1GitSpec };
