/**
 * Properties for `Repository`.
 */
export interface RepositoryProps {
    /**
     * Local directory where the repository was cloned to.
     */
    readonly repoDir: string;
}
/**
 * Artifact produced by this repository.
 */
export interface Artifact {
    /**
     * Language of the artifact.
     */
    readonly lang: string;
    /**
     * Directory containing the artifact.
     */
    readonly directory: string;
}
/**
 * Options for `Repository.fromGitHub`
 */
export interface RepositoryFromGitHubOptions {
    /**
     * Repository slug (e.g cdk8s-team/cdk8s-core)
     */
    readonly slug: string;
    /**
     * Repository tag.
     *
     * @default - latest tag based on creation date.
     */
    readonly tag?: string;
    /**
      * Prefix for detecting the latest tag of the repo. Only applies if `tag` isn't specified.
      * This is useful for repositories that produce multiple packages, and hence multiple tags
      * for example: https://github.com/cdk8s-team/cdk8s-plus/tags.
      */
    readonly tagPrefix?: string;
    /**
     * ARN of an AWS secrets manager secret containing a GitHub token.
     * Required for private repositories. Recommended for public ones, to avoid throtlling issues.
     *
     * @default - the repository is cloned without credentials.
     */
    readonly githubTokenSecretArn?: string;
}
/**
 * Options for `Repository.fromDir`
 */
export interface RepositoryFromDirOptions {
    /**
     * The directory of the repo.
     */
    readonly repoDir: string;
}
/**
 * Repository containing a node project.
 */
export declare class Repository {
    readonly repoDir: string;
    /**
     * Create a repository from a local directory.
     */
    static fromDir(options: RepositoryFromDirOptions): Promise<Repository>;
    /**
     * Create a repository from a GitHub repository.
     */
    static fromGitHub(options: RepositoryFromGitHubOptions): Promise<Repository>;
    private readonly isJsii;
    private readonly manifest;
    private constructor();
    /**
     * Pack the repository to produce the artifacts.
     */
    pack(command: string): Artifact[];
    private _shell;
}
