import * as core from "@terrascript/core";
export interface S3LogsArgs extends core.SchemaArgs {
    bucketOwnerAccess?: string | core.StringOut;
    encryptionDisabled?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    status?: string | core.StringOut;
}
export declare class S3Logs extends core.Schema<S3LogsArgs> {
    bucketOwnerAccess?: string | core.StringOut;
    encryptionDisabled?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    status?: string | core.StringOut;
}
export interface CloudwatchLogsArgs extends core.SchemaArgs {
    groupName?: string | core.StringOut;
    status?: string | core.StringOut;
    streamName?: string | core.StringOut;
}
export declare class CloudwatchLogs extends core.Schema<CloudwatchLogsArgs> {
    groupName?: string | core.StringOut;
    status?: string | core.StringOut;
    streamName?: string | core.StringOut;
}
export interface LogsConfigArgs extends core.SchemaArgs {
    cloudwatchLogs?: CloudwatchLogs;
    s3Logs?: S3Logs;
}
export declare class LogsConfig extends core.Schema<LogsConfigArgs> {
    cloudwatchLogs?: CloudwatchLogs;
    s3Logs?: S3Logs;
}
export interface RegistryCredentialArgs extends core.SchemaArgs {
    credential: string | core.StringOut;
    credentialProvider: string | core.StringOut;
}
export declare class RegistryCredential extends core.Schema<RegistryCredentialArgs> {
    credential: string | core.StringOut;
    credentialProvider: string | core.StringOut;
}
export interface EnvironmentVariableArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    type?: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class EnvironmentVariable extends core.Schema<EnvironmentVariableArgs> {
    name: string | core.StringOut;
    type?: string | core.StringOut;
    value: string | core.StringOut;
}
export interface EnvironmentArgs extends core.SchemaArgs {
    certificate?: string | core.StringOut;
    computeType: string | core.StringOut;
    environmentVariable?: core.Array<EnvironmentVariable> | core.ArrayOut<EnvironmentVariable>;
    image: string | core.StringOut;
    imagePullCredentialsType?: string | core.StringOut;
    privilegedMode?: boolean | core.BooleanOut;
    registryCredential?: RegistryCredential;
    type: string | core.StringOut;
}
export declare class Environment extends core.Schema<EnvironmentArgs> {
    certificate?: string | core.StringOut;
    computeType: string | core.StringOut;
    environmentVariable?: core.Array<EnvironmentVariable> | core.ArrayOut<EnvironmentVariable>;
    image: string | core.StringOut;
    imagePullCredentialsType?: string | core.StringOut;
    privilegedMode?: boolean | core.BooleanOut;
    registryCredential?: RegistryCredential;
    type: string | core.StringOut;
}
export interface GitSubmodulesConfigArgs extends core.SchemaArgs {
    fetchSubmodules: boolean | core.BooleanOut;
}
export declare class GitSubmodulesConfig extends core.Schema<GitSubmodulesConfigArgs> {
    fetchSubmodules: boolean | core.BooleanOut;
}
export interface AuthArgs extends core.SchemaArgs {
    resource?: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class Auth extends core.Schema<AuthArgs> {
    resource?: string | core.StringOut;
    type: string | core.StringOut;
}
export interface BuildStatusConfigArgs extends core.SchemaArgs {
    context?: string | core.StringOut;
    targetUrl?: string | core.StringOut;
}
export declare class BuildStatusConfig extends core.Schema<BuildStatusConfigArgs> {
    context?: string | core.StringOut;
    targetUrl?: string | core.StringOut;
}
export interface SecondarySourcesArgs extends core.SchemaArgs {
    auth?: Auth;
    buildStatusConfig?: BuildStatusConfig;
    buildspec?: string | core.StringOut;
    gitCloneDepth?: number | core.NumberOut;
    gitSubmodulesConfig?: GitSubmodulesConfig;
    insecureSsl?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    reportBuildStatus?: boolean | core.BooleanOut;
    sourceIdentifier: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class SecondarySources extends core.Schema<SecondarySourcesArgs> {
    auth?: Auth;
    buildStatusConfig?: BuildStatusConfig;
    buildspec?: string | core.StringOut;
    gitCloneDepth?: number | core.NumberOut;
    gitSubmodulesConfig?: GitSubmodulesConfig;
    insecureSsl?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    reportBuildStatus?: boolean | core.BooleanOut;
    sourceIdentifier: string | core.StringOut;
    type: string | core.StringOut;
}
export interface SourceArgs extends core.SchemaArgs {
    auth?: Auth;
    buildStatusConfig?: BuildStatusConfig;
    buildspec?: string | core.StringOut;
    gitCloneDepth?: number | core.NumberOut;
    gitSubmodulesConfig?: GitSubmodulesConfig;
    insecureSsl?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    reportBuildStatus?: boolean | core.BooleanOut;
    type: string | core.StringOut;
}
export declare class Source extends core.Schema<SourceArgs> {
    auth?: Auth;
    buildStatusConfig?: BuildStatusConfig;
    buildspec?: string | core.StringOut;
    gitCloneDepth?: number | core.NumberOut;
    gitSubmodulesConfig?: GitSubmodulesConfig;
    insecureSsl?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    reportBuildStatus?: boolean | core.BooleanOut;
    type: string | core.StringOut;
}
export interface SecondaryArtifactsArgs extends core.SchemaArgs {
    artifactIdentifier: string | core.StringOut;
    bucketOwnerAccess?: string | core.StringOut;
    encryptionDisabled?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    name?: string | core.StringOut;
    namespaceType?: string | core.StringOut;
    overrideArtifactName?: boolean | core.BooleanOut;
    packaging?: string | core.StringOut;
    path?: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class SecondaryArtifacts extends core.Schema<SecondaryArtifactsArgs> {
    artifactIdentifier: string | core.StringOut;
    bucketOwnerAccess?: string | core.StringOut;
    encryptionDisabled?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    name?: string | core.StringOut;
    namespaceType?: string | core.StringOut;
    overrideArtifactName?: boolean | core.BooleanOut;
    packaging?: string | core.StringOut;
    path?: string | core.StringOut;
    type: string | core.StringOut;
}
export interface VpcConfigArgs extends core.SchemaArgs {
    securityGroupIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnets: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpcId: string | core.StringOut;
}
export declare class VpcConfig extends core.Schema<VpcConfigArgs> {
    securityGroupIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnets: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpcId: string | core.StringOut;
}
export interface CacheArgs extends core.SchemaArgs {
    location?: string | core.StringOut;
    modes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    type?: string | core.StringOut;
}
export declare class Cache extends core.Schema<CacheArgs> {
    location?: string | core.StringOut;
    modes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    type?: string | core.StringOut;
}
export interface SecondarySourceVersionArgs extends core.SchemaArgs {
    sourceIdentifier: string | core.StringOut;
    sourceVersion: string | core.StringOut;
}
export declare class SecondarySourceVersion extends core.Schema<SecondarySourceVersionArgs> {
    sourceIdentifier: string | core.StringOut;
    sourceVersion: string | core.StringOut;
}
export interface ArtifactsArgs extends core.SchemaArgs {
    artifactIdentifier?: string | core.StringOut;
    bucketOwnerAccess?: string | core.StringOut;
    encryptionDisabled?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    name?: string | core.StringOut;
    namespaceType?: string | core.StringOut;
    overrideArtifactName?: boolean | core.BooleanOut;
    packaging?: string | core.StringOut;
    path?: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class Artifacts extends core.Schema<ArtifactsArgs> {
    artifactIdentifier?: string | core.StringOut;
    bucketOwnerAccess?: string | core.StringOut;
    encryptionDisabled?: boolean | core.BooleanOut;
    location?: string | core.StringOut;
    name?: string | core.StringOut;
    namespaceType?: string | core.StringOut;
    overrideArtifactName?: boolean | core.BooleanOut;
    packaging?: string | core.StringOut;
    path?: string | core.StringOut;
    type: string | core.StringOut;
}
export interface RestrictionsArgs extends core.SchemaArgs {
    computeTypesAllowed?: core.Array<string> | core.ArrayOut<core.StringOut>;
    maximumBuildsAllowed?: number | core.NumberOut;
}
export declare class Restrictions extends core.Schema<RestrictionsArgs> {
    computeTypesAllowed?: core.Array<string> | core.ArrayOut<core.StringOut>;
    maximumBuildsAllowed?: number | core.NumberOut;
}
export interface BuildBatchConfigArgs extends core.SchemaArgs {
    combineArtifacts?: boolean | core.BooleanOut;
    restrictions?: Restrictions;
    serviceRole: string | core.StringOut;
    timeoutInMins?: number | core.NumberOut;
}
export declare class BuildBatchConfig extends core.Schema<BuildBatchConfigArgs> {
    combineArtifacts?: boolean | core.BooleanOut;
    restrictions?: Restrictions;
    serviceRole: string | core.StringOut;
    timeoutInMins?: number | core.NumberOut;
}
export interface FileSystemLocationsArgs extends core.SchemaArgs {
    identifier?: string | core.StringOut;
    location?: string | core.StringOut;
    mountOptions?: string | core.StringOut;
    mountPoint?: string | core.StringOut;
    type?: string | core.StringOut;
}
export declare class FileSystemLocations extends core.Schema<FileSystemLocationsArgs> {
    identifier?: string | core.StringOut;
    location?: string | core.StringOut;
    mountOptions?: string | core.StringOut;
    mountPoint?: string | core.StringOut;
    type?: string | core.StringOut;
}
export interface ProjectArgs extends core.ResourceArgs {
    artifacts: Artifacts;
    badgeEnabled?: boolean | core.BooleanOut;
    buildBatchConfig?: BuildBatchConfig;
    buildTimeout?: number | core.NumberOut;
    cache?: Cache;
    concurrentBuildLimit?: number | core.NumberOut;
    description?: string | core.StringOut;
    encryptionKey?: string | core.StringOut;
    environment: Environment;
    fileSystemLocations?: core.Array<FileSystemLocations> | core.ArrayOut<FileSystemLocations>;
    logsConfig?: LogsConfig;
    name: string | core.StringOut;
    projectVisibility?: string | core.StringOut;
    queuedTimeout?: number | core.NumberOut;
    resourceAccessRole?: string | core.StringOut;
    secondaryArtifacts?: core.Array<SecondaryArtifacts> | core.ArrayOut<SecondaryArtifacts>;
    secondarySourceVersion?: core.Array<SecondarySourceVersion> | core.ArrayOut<SecondarySourceVersion>;
    secondarySources?: core.Array<SecondarySources> | core.ArrayOut<SecondarySources>;
    serviceRole: string | core.StringOut;
    source: Source;
    sourceVersion?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    vpcConfig?: VpcConfig;
}
export declare class Project extends core.Resource<ProjectArgs> {
    arn: string | core.StringOut;
    artifacts: Artifacts;
    badgeEnabled?: boolean | core.BooleanOut;
    badgeUrl: string | core.StringOut;
    buildBatchConfig?: BuildBatchConfig;
    buildTimeout?: number | core.NumberOut;
    cache?: Cache;
    concurrentBuildLimit?: number | core.NumberOut;
    description?: string | core.StringOut;
    encryptionKey?: string | core.StringOut;
    environment: Environment;
    fileSystemLocations?: core.Array<FileSystemLocations> | core.ArrayOut<FileSystemLocations>;
    id: string | core.StringOut;
    logsConfig?: LogsConfig;
    name: string | core.StringOut;
    projectVisibility?: string | core.StringOut;
    publicProjectAlias: string | core.StringOut;
    queuedTimeout?: number | core.NumberOut;
    resourceAccessRole?: string | core.StringOut;
    secondaryArtifacts?: core.Array<SecondaryArtifacts> | core.ArrayOut<SecondaryArtifacts>;
    secondarySourceVersion?: core.Array<SecondarySourceVersion> | core.ArrayOut<SecondarySourceVersion>;
    secondarySources?: core.Array<SecondarySources> | core.ArrayOut<SecondarySources>;
    serviceRole: string | core.StringOut;
    source: Source;
    sourceVersion?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    vpcConfig?: VpcConfig;
    constructor(name: string, args?: ProjectArgs);
    getNamespace(): string;
}
//# sourceMappingURL=project.d.ts.map