import { IComGithubFluxcdSourceControllerApiV1GitRepositoryInclude } from "./GitRepositoryInclude.js";
import { IComGithubFluxcdPkgApisMetaLocalObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/LocalObjectReference.js";
import { IComGithubFluxcdSourceControllerApiV1GitRepositoryRef } from "./GitRepositoryRef.js";
import { IComGithubFluxcdSourceControllerApiV1GitRepositoryVerification } from "./GitRepositoryVerification.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * GitRepositorySpec specifies the required configuration to produce an
 * Artifact for a Git repository.
 */
export interface IGitRepositorySpec {
    /**
     * 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;
    /**
     * Include specifies a list of GitRepository resources which Artifacts
     * should be included in the Artifact produced for this GitRepository.
     */
    "include"?: Array<IComGithubFluxcdSourceControllerApiV1GitRepositoryInclude>;
    "interval": string;
    /**
     * Provider used for authentication, can be 'azure', 'github', 'generic'.
     * When not specified, defaults to 'generic'.
     */
    "provider"?: "generic" | "azure" | "github";
    /**
     * ProxySecretRef specifies the Secret containing the proxy configuration
     * to use while communicating with the Git server.
     */
    "proxySecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * RecurseSubmodules enables the initialization of all submodules within
     * the GitRepository as cloned from the URL, using their default settings.
     */
    "recurseSubmodules"?: boolean;
    /**
     * Reference specifies the Git reference to resolve and monitor for
     * changes, defaults to the 'master' branch.
     */
    "ref"?: IComGithubFluxcdSourceControllerApiV1GitRepositoryRef;
    /**
     * SecretRef specifies the Secret containing authentication credentials for
     * the GitRepository.
     * For HTTPS repositories the Secret must contain 'username' and 'password'
     * fields for basic auth or 'bearerToken' field for token auth.
     * For SSH repositories the Secret must contain 'identity'
     * and 'known_hosts' fields.
     */
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * ServiceAccountName is the name of the Kubernetes ServiceAccount used to
     * authenticate to the GitRepository. This field is only supported for 'azure' provider.
     */
    "serviceAccountName"?: string;
    /**
     * SparseCheckout specifies a list of directories to checkout when cloning
     * the repository. If specified, only these directories are included in the
     * Artifact produced for this GitRepository.
     */
    "sparseCheckout"?: Array<string>;
    /**
     * Suspend tells the controller to suspend the reconciliation of this
     * GitRepository.
     */
    "suspend"?: boolean;
    "timeout"?: string;
    /**
     * URL specifies the Git repository URL, it can be an HTTP/S or SSH address.
     */
    "url": string;
    /**
     * Verification specifies the configuration to verify the Git commit
     * signature(s).
     */
    "verify"?: IComGithubFluxcdSourceControllerApiV1GitRepositoryVerification;
}
/**
 * GitRepositorySpec specifies the required configuration to produce an
 * Artifact for a Git repository.
 */
export declare class GitRepositorySpec extends Model<IGitRepositorySpec> implements IGitRepositorySpec {
    "ignore"?: string;
    "include"?: Array<IComGithubFluxcdSourceControllerApiV1GitRepositoryInclude>;
    "interval": string;
    "provider"?: "generic" | "azure" | "github";
    "proxySecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "recurseSubmodules"?: boolean;
    "ref"?: IComGithubFluxcdSourceControllerApiV1GitRepositoryRef;
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "serviceAccountName"?: string;
    "sparseCheckout"?: Array<string>;
    "suspend"?: boolean;
    "timeout"?: string;
    "url": string;
    "verify"?: IComGithubFluxcdSourceControllerApiV1GitRepositoryVerification;
    constructor(data?: ModelData<IGitRepositorySpec>);
}
export type { IGitRepositorySpec as IComGithubFluxcdSourceControllerApiV1GitRepositorySpec, GitRepositorySpec as ComGithubFluxcdSourceControllerApiV1GitRepositorySpec };
