import cdk = require('@aws-cdk/cdk');
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html
     */
    interface ProjectResourceProps {
        /**
         * ``AWS::CodeBuild::Project.Artifacts``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-artifacts
         */
        artifacts: ProjectResource.ArtifactsProperty | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.Environment``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-environment
         */
        environment: ProjectResource.EnvironmentProperty | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.ServiceRole``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-servicerole
         */
        serviceRole: string | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.Source``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-source
         */
        source: ProjectResource.SourceProperty | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.BadgeEnabled``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-badgeenabled
         */
        badgeEnabled?: boolean | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.Cache``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-cache
         */
        cache?: ProjectResource.ProjectCacheProperty | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.Description``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-description
         */
        description?: string | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.EncryptionKey``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-encryptionkey
         */
        encryptionKey?: string | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.Name``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-name
         */
        projectName?: string | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.Tags``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-tags
         */
        tags?: Array<cdk.Tag | cdk.Token> | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.TimeoutInMinutes``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-timeoutinminutes
         */
        timeoutInMinutes?: number | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.Triggers``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-triggers
         */
        triggers?: ProjectResource.ProjectTriggersProperty | cdk.Token;
        /**
         * ``AWS::CodeBuild::Project.VpcConfig``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-vpcconfig
         */
        vpcConfig?: ProjectResource.VpcConfigProperty | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html
     */
    class ProjectResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * @cloudformation_attribute Arn
         */
        readonly projectArn: ProjectArn;
        /**
         * Creates a new ``AWS::CodeBuild::Project``.
         *
         * @param parent     the ``cdk.Construct`` this ``ProjectResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``ProjectResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: ProjectResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
    namespace ProjectResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html
         */
        interface ArtifactsProperty {
            /**
             * ``ProjectResource.ArtifactsProperty.Location``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-location
             */
            location?: string | cdk.Token;
            /**
             * ``ProjectResource.ArtifactsProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-name
             */
            name?: string | cdk.Token;
            /**
             * ``ProjectResource.ArtifactsProperty.NamespaceType``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-namespacetype
             */
            namespaceType?: string | cdk.Token;
            /**
             * ``ProjectResource.ArtifactsProperty.Packaging``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-packaging
             */
            packaging?: string | cdk.Token;
            /**
             * ``ProjectResource.ArtifactsProperty.Path``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-path
             */
            path?: string | cdk.Token;
            /**
             * ``ProjectResource.ArtifactsProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-type
             */
            type: string | cdk.Token;
        }
    }
    namespace ProjectResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html
         */
        interface EnvironmentProperty {
            /**
             * ``ProjectResource.EnvironmentProperty.ComputeType``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-computetype
             */
            computeType: string | cdk.Token;
            /**
             * ``ProjectResource.EnvironmentProperty.EnvironmentVariables``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-environmentvariables
             */
            environmentVariables?: Array<EnvironmentVariableProperty | cdk.Token> | cdk.Token;
            /**
             * ``ProjectResource.EnvironmentProperty.Image``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-image
             */
            image: string | cdk.Token;
            /**
             * ``ProjectResource.EnvironmentProperty.PrivilegedMode``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-privilegedmode
             */
            privilegedMode?: boolean | cdk.Token;
            /**
             * ``ProjectResource.EnvironmentProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-type
             */
            type: string | cdk.Token;
        }
    }
    namespace ProjectResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html
         */
        interface EnvironmentVariableProperty {
            /**
             * ``ProjectResource.EnvironmentVariableProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-name
             */
            name: string | cdk.Token;
            /**
             * ``ProjectResource.EnvironmentVariableProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-type
             */
            type?: string | cdk.Token;
            /**
             * ``ProjectResource.EnvironmentVariableProperty.Value``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-value
             */
            value: string | cdk.Token;
        }
    }
    namespace ProjectResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html
         */
        interface ProjectCacheProperty {
            /**
             * ``ProjectResource.ProjectCacheProperty.Location``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-location
             */
            location?: string | cdk.Token;
            /**
             * ``ProjectResource.ProjectCacheProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-type
             */
            type: string | cdk.Token;
        }
    }
    namespace ProjectResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html
         */
        interface ProjectTriggersProperty {
            /**
             * ``ProjectResource.ProjectTriggersProperty.Webhook``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html#cfn-codebuild-project-projecttriggers-webhook
             */
            webhook?: boolean | cdk.Token;
        }
    }
    namespace ProjectResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html
         */
        interface SourceProperty {
            /**
             * ``ProjectResource.SourceProperty.Auth``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-auth
             */
            auth?: SourceAuthProperty | cdk.Token;
            /**
             * ``ProjectResource.SourceProperty.BuildSpec``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-buildspec
             */
            buildSpec?: string | cdk.Token;
            /**
             * ``ProjectResource.SourceProperty.GitCloneDepth``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-gitclonedepth
             */
            gitCloneDepth?: number | cdk.Token;
            /**
             * ``ProjectResource.SourceProperty.InsecureSsl``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-insecuressl
             */
            insecureSsl?: boolean | cdk.Token;
            /**
             * ``ProjectResource.SourceProperty.Location``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-location
             */
            location?: string | cdk.Token;
            /**
             * ``ProjectResource.SourceProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-type
             */
            type: string | cdk.Token;
        }
    }
    namespace ProjectResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html
         */
        interface SourceAuthProperty {
            /**
             * ``ProjectResource.SourceAuthProperty.Resource``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html#cfn-codebuild-project-sourceauth-resource
             */
            resource?: string | cdk.Token;
            /**
             * ``ProjectResource.SourceAuthProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html#cfn-codebuild-project-sourceauth-type
             */
            type: string | cdk.Token;
        }
    }
    namespace ProjectResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html
         */
        interface VpcConfigProperty {
            /**
             * ``ProjectResource.VpcConfigProperty.SecurityGroupIds``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-securitygroupids
             */
            securityGroupIds: Array<string | cdk.Token> | cdk.Token;
            /**
             * ``ProjectResource.VpcConfigProperty.Subnets``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-subnets
             */
            subnets: Array<string | cdk.Token> | cdk.Token;
            /**
             * ``ProjectResource.VpcConfigProperty.VpcId``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-vpcid
             */
            vpcId: string | cdk.Token;
        }
    }
}
export declare class ProjectArn extends cdk.Arn {
}
