import { IComGithubFluxcdPkgApisAclAccessFrom } from "../../github.com/fluxcd/pkg/apis/acl/AccessFrom.js";
import { IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryInclude } from "./GitRepositoryInclude.js";
import { IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryRef } from "./GitRepositoryRef.js";
import { IComGithubFluxcdPkgApisMetaLocalObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/LocalObjectReference.js";
import { IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryVerification } from "./GitRepositoryVerification.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * GitRepositorySpec defines the desired state of a Git repository.
 */
export interface IGitRepositorySpec {
    /**
     * AccessFrom defines an Access Control List for allowing cross-namespace references to this object.
     */
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    /**
     * Determines which git client library to use.
     * Defaults to go-git, valid values are ('go-git', 'libgit2').
     */
    "gitImplementation"?: "go-git" | "libgit2";
    /**
     * Ignore overrides the set of excluded patterns in the .sourceignore format
     * (which is the same as .gitignore). If not provided, a default will be used,
     * consult the documentation for your version to find out what those are.
     */
    "ignore"?: string;
    /**
     * Extra git repositories to map into the repository
     */
    "include"?: Array<IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryInclude>;
    "interval": string;
    /**
     * When enabled, after the clone is created, initializes all submodules within,
     * using their default settings.
     * This option is available only when using the 'go-git' GitImplementation.
     */
    "recurseSubmodules"?: boolean;
    /**
     * The Git reference to checkout and monitor for changes, defaults to
     * master branch.
     */
    "ref"?: IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryRef;
    /**
     * The secret name containing the Git credentials.
     * For HTTPS repositories the secret must contain username and password
     * fields.
     * For SSH repositories the secret must contain identity and known_hosts
     * fields.
     */
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * This flag tells the controller to suspend the reconciliation of this source.
     */
    "suspend"?: boolean;
    "timeout"?: string;
    /**
     * The repository URL, can be a HTTP/S or SSH address.
     */
    "url": string;
    /**
     * Verify OpenPGP signature for the Git commit HEAD points to.
     */
    "verify"?: IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryVerification;
}
/**
 * GitRepositorySpec defines the desired state of a Git repository.
 */
export declare class GitRepositorySpec extends Model<IGitRepositorySpec> implements IGitRepositorySpec {
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    "gitImplementation"?: "go-git" | "libgit2";
    "ignore"?: string;
    "include"?: Array<IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryInclude>;
    "interval": string;
    "recurseSubmodules"?: boolean;
    "ref"?: IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryRef;
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "suspend"?: boolean;
    "timeout"?: string;
    "url": string;
    "verify"?: IComGithubFluxcdSourceControllerApiV1beta1GitRepositoryVerification;
    constructor(data?: ModelData<IGitRepositorySpec>);
}
export type { IGitRepositorySpec as IComGithubFluxcdSourceControllerApiV1beta1GitRepositorySpec, GitRepositorySpec as ComGithubFluxcdSourceControllerApiV1beta1GitRepositorySpec };
