import s3 = require('@aws-cdk/aws-s3');
import { cloudformation } from './codebuild.generated';
import { Project } from './project';
export declare abstract class BuildArtifacts {
    abstract toArtifactsJSON(): cloudformation.ProjectResource.ArtifactsProperty;
    bind(_project: Project): void;
}
export declare class NoBuildArtifacts extends BuildArtifacts {
    toArtifactsJSON(): cloudformation.ProjectResource.ArtifactsProperty;
}
export declare class CodePipelineBuildArtifacts extends BuildArtifacts {
    toArtifactsJSON(): cloudformation.ProjectResource.ArtifactsProperty;
}
export interface S3BucketBuildArtifactsProps {
    /**
     * The name of the output bucket.
     */
    bucket: s3.BucketRef;
    /**
     * The path inside of the bucket for the build output .zip file or folder.
     * If a value is not specified, then build output will be stored at the root of the
     * bucket (or under the <build-id> directory if `includeBuildId` is set to true).
     */
    path?: string;
    /**
     * The name of the build output ZIP file or folder inside the bucket.
     *
     * The full S3 object key will be "<path>/build-ID/<name>" or
     * "<path>/<artifactsName>" depending on whether `includeBuildId` is set to true.
     */
    name: string;
    /**
     * Indicates if the build ID should be included in the path. If this is set to true,
     * then the build artifact will be stored in "<path>/<build-id>/<name>".
     *
     * @default true
     */
    includeBuildID?: boolean;
    /**
     * If this is true, all build output will be packaged into a single .zip file.
     * Otherwise, all files will be uploaded to <path>/<name>
     *
     * @default true - files will be archived
     */
    packageZip?: boolean;
}
export declare class S3BucketBuildArtifacts extends BuildArtifacts {
    private readonly props;
    constructor(props: S3BucketBuildArtifactsProps);
    bind(project: Project): void;
    toArtifactsJSON(): cloudformation.ProjectResource.ArtifactsProperty;
    private parseNamespaceType;
    private parsePackaging;
}
