import * as core from "@terrascript/core";
export interface LaunchTemplateArgs extends core.SchemaArgs {
    launchTemplateId?: string | core.StringOut;
    launchTemplateName?: string | core.StringOut;
    version?: string | core.StringOut;
}
export declare class LaunchTemplate extends core.Schema<LaunchTemplateArgs> {
    launchTemplateId?: string | core.StringOut;
    launchTemplateName?: string | core.StringOut;
    version?: string | core.StringOut;
}
export interface Ec2ConfigurationArgs extends core.SchemaArgs {
    imageIdOverride?: string | core.StringOut;
    imageType?: string | core.StringOut;
}
export declare class Ec2Configuration extends core.Schema<Ec2ConfigurationArgs> {
    imageIdOverride?: string | core.StringOut;
    imageType?: string | core.StringOut;
}
export interface ComputeResourcesArgs extends core.SchemaArgs {
    allocationStrategy?: string | core.StringOut;
    bidPercentage?: number | core.NumberOut;
    desiredVcpus?: number | core.NumberOut;
    ec2Configuration?: Ec2Configuration;
    ec2KeyPair?: string | core.StringOut;
    imageId?: string | core.StringOut;
    instanceRole?: string | core.StringOut;
    instanceType?: core.Array<string> | core.ArrayOut<core.StringOut>;
    launchTemplate?: LaunchTemplate;
    maxVcpus: number | core.NumberOut;
    minVcpus?: number | core.NumberOut;
    securityGroupIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    spotIamFleetRole?: string | core.StringOut;
    subnets: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type: string | core.StringOut;
}
export declare class ComputeResources extends core.Schema<ComputeResourcesArgs> {
    allocationStrategy?: string | core.StringOut;
    bidPercentage?: number | core.NumberOut;
    desiredVcpus?: number | core.NumberOut;
    ec2Configuration?: Ec2Configuration;
    ec2KeyPair?: string | core.StringOut;
    imageId?: string | core.StringOut;
    instanceRole?: string | core.StringOut;
    instanceType?: core.Array<string> | core.ArrayOut<core.StringOut>;
    launchTemplate?: LaunchTemplate;
    maxVcpus: number | core.NumberOut;
    minVcpus?: number | core.NumberOut;
    securityGroupIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    spotIamFleetRole?: string | core.StringOut;
    subnets: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type: string | core.StringOut;
}
export interface ComputeEnvironmentArgs extends core.ResourceArgs {
    computeEnvironmentName?: string | core.StringOut;
    computeEnvironmentNamePrefix?: string | core.StringOut;
    computeResources?: ComputeResources;
    serviceRole?: string | core.StringOut;
    state?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type: string | core.StringOut;
}
export declare class ComputeEnvironment extends core.Resource<ComputeEnvironmentArgs> {
    arn: string | core.StringOut;
    computeEnvironmentName?: string | core.StringOut;
    computeEnvironmentNamePrefix?: string | core.StringOut;
    computeResources?: ComputeResources;
    ecsClusterArn: string | core.StringOut;
    id: string | core.StringOut;
    serviceRole?: string | core.StringOut;
    state?: string | core.StringOut;
    status: string | core.StringOut;
    statusReason: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type: string | core.StringOut;
    constructor(name: string, args?: ComputeEnvironmentArgs);
    getNamespace(): string;
}
//# sourceMappingURL=compute_environment.d.ts.map