import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List } from "../../data-types";
export declare class ProjectFileSystemLocation {
    MountPoint: Value<string>;
    Type: Value<string>;
    Identifier: Value<string>;
    MountOptions?: Value<string>;
    Location: Value<string>;
    constructor(properties: ProjectFileSystemLocation);
}
export declare class GitSubmodulesConfig {
    FetchSubmodules: Value<boolean>;
    constructor(properties: GitSubmodulesConfig);
}
export declare class ProjectCache {
    Modes?: List<Value<string>>;
    Type: Value<string>;
    Location?: Value<string>;
    constructor(properties: ProjectCache);
}
export declare class CloudWatchLogsConfig {
    Status: Value<string>;
    GroupName?: Value<string>;
    StreamName?: Value<string>;
    constructor(properties: CloudWatchLogsConfig);
}
export declare class Artifacts {
    Packaging?: Value<string>;
    Path?: Value<string>;
    OverrideArtifactName?: Value<boolean>;
    Name?: Value<string>;
    NamespaceType?: Value<string>;
    Location?: Value<string>;
    Type: Value<string>;
    ArtifactIdentifier?: Value<string>;
    EncryptionDisabled?: Value<boolean>;
    constructor(properties: Artifacts);
}
export declare class S3LogsConfig {
    Status: Value<string>;
    EncryptionDisabled?: Value<boolean>;
    Location?: Value<string>;
    constructor(properties: S3LogsConfig);
}
export declare class LogsConfig {
    CloudWatchLogs?: CloudWatchLogsConfig;
    S3Logs?: S3LogsConfig;
    constructor(properties: LogsConfig);
}
export declare class RegistryCredential {
    Credential: Value<string>;
    CredentialProvider: Value<string>;
    constructor(properties: RegistryCredential);
}
export declare class FilterGroup {
    constructor(properties: FilterGroup);
}
export declare class VpcConfig {
    Subnets?: List<Value<string>>;
    VpcId?: Value<string>;
    SecurityGroupIds?: List<Value<string>>;
    constructor(properties: VpcConfig);
}
export declare class Source {
    SourceIdentifier?: Value<string>;
    Auth?: SourceAuth;
    BuildSpec?: Value<string>;
    ReportBuildStatus?: Value<boolean>;
    InsecureSsl?: Value<boolean>;
    Location?: Value<string>;
    GitCloneDepth?: Value<number>;
    Type: Value<string>;
    GitSubmodulesConfig?: GitSubmodulesConfig;
    constructor(properties: Source);
}
export declare class EnvironmentVariable {
    Type?: Value<string>;
    Value: Value<string>;
    Name: Value<string>;
    constructor(properties: EnvironmentVariable);
}
export declare class WebhookFilter {
    Pattern: Value<string>;
    Type: Value<string>;
    ExcludeMatchedPattern?: Value<boolean>;
    constructor(properties: WebhookFilter);
}
export declare class Environment {
    Type: Value<string>;
    EnvironmentVariables?: List<EnvironmentVariable>;
    PrivilegedMode?: Value<boolean>;
    ImagePullCredentialsType?: Value<string>;
    Image: Value<string>;
    RegistryCredential?: RegistryCredential;
    ComputeType: Value<string>;
    Certificate?: Value<string>;
    constructor(properties: Environment);
}
export declare class ProjectTriggers {
    FilterGroups?: List<FilterGroup>;
    Webhook?: Value<boolean>;
    constructor(properties: ProjectTriggers);
}
export declare class SourceAuth {
    Type: Value<string>;
    Resource?: Value<string>;
    constructor(properties: SourceAuth);
}
export declare class ProjectSourceVersion {
    SourceIdentifier: Value<string>;
    SourceVersion?: Value<string>;
    constructor(properties: ProjectSourceVersion);
}
export interface ProjectProperties {
    Artifacts: Artifacts;
    Cache?: ProjectCache;
    SecondarySources?: List<Source>;
    SecondarySourceVersions?: List<ProjectSourceVersion>;
    ServiceRole: Value<string>;
    VpcConfig?: VpcConfig;
    Name?: Value<string>;
    QueuedTimeoutInMinutes?: Value<number>;
    SecondaryArtifacts?: List<Artifacts>;
    LogsConfig?: LogsConfig;
    FileSystemLocations?: List<ProjectFileSystemLocation>;
    Environment: Environment;
    Tags?: List<Inner_ResourceTag>;
    TimeoutInMinutes?: Value<number>;
    Source: Source;
    Triggers?: ProjectTriggers;
    EncryptionKey?: Value<string>;
    Description?: Value<string>;
    SourceVersion?: Value<string>;
    BadgeEnabled?: Value<boolean>;
}
export default class Inner_Project extends ResourceBase<ProjectProperties> {
    static ProjectFileSystemLocation: typeof ProjectFileSystemLocation;
    static GitSubmodulesConfig: typeof GitSubmodulesConfig;
    static ProjectCache: typeof ProjectCache;
    static CloudWatchLogsConfig: typeof CloudWatchLogsConfig;
    static Artifacts: typeof Artifacts;
    static S3LogsConfig: typeof S3LogsConfig;
    static LogsConfig: typeof LogsConfig;
    static RegistryCredential: typeof RegistryCredential;
    static FilterGroup: typeof FilterGroup;
    static VpcConfig: typeof VpcConfig;
    static Source: typeof Source;
    static EnvironmentVariable: typeof EnvironmentVariable;
    static WebhookFilter: typeof WebhookFilter;
    static Environment: typeof Environment;
    static ProjectTriggers: typeof ProjectTriggers;
    static SourceAuth: typeof SourceAuth;
    static ProjectSourceVersion: typeof ProjectSourceVersion;
    constructor(properties: ProjectProperties);
}
