import { IComGithubFluxcdPkgApisAclAccessFrom } from "../../github.com/fluxcd/pkg/apis/acl/AccessFrom.js";
import { IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryInclude } from "./GitRepositoryInclude.js";
import { IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryRef } from "./GitRepositoryRef.js";
import { IComGithubFluxcdPkgApisMetaLocalObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/LocalObjectReference.js";
import { IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryVerification } 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 {
    /**
     * AccessFrom specifies an Access Control List for allowing cross-namespace
     * references to this object.
     * NOTE: Not implemented, provisional as of https://github.com/fluxcd/flux2/pull/2092
     */
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    /**
     * GitImplementation specifies which Git client library implementation to
     * use. Defaults to 'go-git', valid values are ('go-git', 'libgit2').
     * Deprecated: gitImplementation is deprecated now that 'go-git' is the
     * only supported implementation.
     */
    "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;
    /**
     * Include specifies a list of GitRepository resources which Artifacts
     * should be included in the Artifact produced for this GitRepository.
     */
    "include"?: Array<IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryInclude>;
    "interval": string;
    /**
     * 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"?: IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryRef;
    /**
     * 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;
    /**
     * 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"?: IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryVerification;
}
/**
 * GitRepositorySpec specifies the required configuration to produce an
 * Artifact for a Git repository.
 */
export declare class GitRepositorySpec extends Model<IGitRepositorySpec> implements IGitRepositorySpec {
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    "gitImplementation"?: "go-git" | "libgit2";
    "ignore"?: string;
    "include"?: Array<IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryInclude>;
    "interval": string;
    "recurseSubmodules"?: boolean;
    "ref"?: IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryRef;
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "suspend"?: boolean;
    "timeout"?: string;
    "url": string;
    "verify"?: IComGithubFluxcdSourceControllerApiV1beta2GitRepositoryVerification;
    constructor(data?: ModelData<IGitRepositorySpec>);
}
export type { IGitRepositorySpec as IComGithubFluxcdSourceControllerApiV1beta2GitRepositorySpec, GitRepositorySpec as ComGithubFluxcdSourceControllerApiV1beta2GitRepositorySpec };
