import * as core from "@terrascript/core";
export interface FilterArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Filter extends core.Schema<FilterArgs> {
    name: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface TagSpecificationsArgs extends core.SchemaArgs {
    resourceType: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class TagSpecifications extends core.Schema<TagSpecificationsArgs> {
    resourceType: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export interface PlacementArgs extends core.SchemaArgs {
    affinity: string | core.StringOut;
    availabilityZone: string | core.StringOut;
    groupName: string | core.StringOut;
    hostId: string | core.StringOut;
    hostResourceGroupArn: string | core.StringOut;
    partitionNumber: number | core.NumberOut;
    spreadDomain: string | core.StringOut;
    tenancy: string | core.StringOut;
}
export declare class Placement extends core.Schema<PlacementArgs> {
    affinity: string | core.StringOut;
    availabilityZone: string | core.StringOut;
    groupName: string | core.StringOut;
    hostId: string | core.StringOut;
    hostResourceGroupArn: string | core.StringOut;
    partitionNumber: number | core.NumberOut;
    spreadDomain: string | core.StringOut;
    tenancy: string | core.StringOut;
}
export interface TotalLocalStorageGbArgs extends core.SchemaArgs {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export declare class TotalLocalStorageGb extends core.Schema<TotalLocalStorageGbArgs> {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export interface MemoryGibPerVcpuArgs extends core.SchemaArgs {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export declare class MemoryGibPerVcpu extends core.Schema<MemoryGibPerVcpuArgs> {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export interface MemoryMibArgs extends core.SchemaArgs {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export declare class MemoryMib extends core.Schema<MemoryMibArgs> {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export interface VcpuCountArgs extends core.SchemaArgs {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export declare class VcpuCount extends core.Schema<VcpuCountArgs> {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export interface AcceleratorCountArgs extends core.SchemaArgs {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export declare class AcceleratorCount extends core.Schema<AcceleratorCountArgs> {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export interface NetworkInterfaceCountArgs extends core.SchemaArgs {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export declare class NetworkInterfaceCount extends core.Schema<NetworkInterfaceCountArgs> {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export interface BaselineEbsBandwidthMbpsArgs extends core.SchemaArgs {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export declare class BaselineEbsBandwidthMbps extends core.Schema<BaselineEbsBandwidthMbpsArgs> {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export interface AcceleratorTotalMemoryMibArgs extends core.SchemaArgs {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export declare class AcceleratorTotalMemoryMib extends core.Schema<AcceleratorTotalMemoryMibArgs> {
    max: number | core.NumberOut;
    min: number | core.NumberOut;
}
export interface InstanceRequirementsArgs extends core.SchemaArgs {
    acceleratorCount: core.Array<AcceleratorCount> | core.ArrayOut<AcceleratorCount>;
    acceleratorManufacturers: core.Array<string> | core.ArrayOut<core.StringOut>;
    acceleratorNames: core.Array<string> | core.ArrayOut<core.StringOut>;
    acceleratorTotalMemoryMib: core.Array<AcceleratorTotalMemoryMib> | core.ArrayOut<AcceleratorTotalMemoryMib>;
    acceleratorTypes: core.Array<string> | core.ArrayOut<core.StringOut>;
    bareMetal: string | core.StringOut;
    baselineEbsBandwidthMbps: core.Array<BaselineEbsBandwidthMbps> | core.ArrayOut<BaselineEbsBandwidthMbps>;
    burstablePerformance: string | core.StringOut;
    cpuManufacturers: core.Array<string> | core.ArrayOut<core.StringOut>;
    excludedInstanceTypes: core.Array<string> | core.ArrayOut<core.StringOut>;
    instanceGenerations: core.Array<string> | core.ArrayOut<core.StringOut>;
    localStorage: string | core.StringOut;
    localStorageTypes: core.Array<string> | core.ArrayOut<core.StringOut>;
    memoryGibPerVcpu: core.Array<MemoryGibPerVcpu> | core.ArrayOut<MemoryGibPerVcpu>;
    memoryMib: core.Array<MemoryMib> | core.ArrayOut<MemoryMib>;
    networkInterfaceCount: core.Array<NetworkInterfaceCount> | core.ArrayOut<NetworkInterfaceCount>;
    onDemandMaxPricePercentageOverLowestPrice: number | core.NumberOut;
    requireHibernateSupport: boolean | core.BooleanOut;
    spotMaxPricePercentageOverLowestPrice: number | core.NumberOut;
    totalLocalStorageGb: core.Array<TotalLocalStorageGb> | core.ArrayOut<TotalLocalStorageGb>;
    vcpuCount: core.Array<VcpuCount> | core.ArrayOut<VcpuCount>;
}
export declare class InstanceRequirements extends core.Schema<InstanceRequirementsArgs> {
    acceleratorCount: core.Array<AcceleratorCount> | core.ArrayOut<AcceleratorCount>;
    acceleratorManufacturers: core.Array<string> | core.ArrayOut<core.StringOut>;
    acceleratorNames: core.Array<string> | core.ArrayOut<core.StringOut>;
    acceleratorTotalMemoryMib: core.Array<AcceleratorTotalMemoryMib> | core.ArrayOut<AcceleratorTotalMemoryMib>;
    acceleratorTypes: core.Array<string> | core.ArrayOut<core.StringOut>;
    bareMetal: string | core.StringOut;
    baselineEbsBandwidthMbps: core.Array<BaselineEbsBandwidthMbps> | core.ArrayOut<BaselineEbsBandwidthMbps>;
    burstablePerformance: string | core.StringOut;
    cpuManufacturers: core.Array<string> | core.ArrayOut<core.StringOut>;
    excludedInstanceTypes: core.Array<string> | core.ArrayOut<core.StringOut>;
    instanceGenerations: core.Array<string> | core.ArrayOut<core.StringOut>;
    localStorage: string | core.StringOut;
    localStorageTypes: core.Array<string> | core.ArrayOut<core.StringOut>;
    memoryGibPerVcpu: core.Array<MemoryGibPerVcpu> | core.ArrayOut<MemoryGibPerVcpu>;
    memoryMib: core.Array<MemoryMib> | core.ArrayOut<MemoryMib>;
    networkInterfaceCount: core.Array<NetworkInterfaceCount> | core.ArrayOut<NetworkInterfaceCount>;
    onDemandMaxPricePercentageOverLowestPrice: number | core.NumberOut;
    requireHibernateSupport: boolean | core.BooleanOut;
    spotMaxPricePercentageOverLowestPrice: number | core.NumberOut;
    totalLocalStorageGb: core.Array<TotalLocalStorageGb> | core.ArrayOut<TotalLocalStorageGb>;
    vcpuCount: core.Array<VcpuCount> | core.ArrayOut<VcpuCount>;
}
export interface EnclaveOptionsArgs extends core.SchemaArgs {
    enabled: boolean | core.BooleanOut;
}
export declare class EnclaveOptions extends core.Schema<EnclaveOptionsArgs> {
    enabled: boolean | core.BooleanOut;
}
export interface EbsArgs extends core.SchemaArgs {
    deleteOnTermination: string | core.StringOut;
    encrypted: string | core.StringOut;
    iops: number | core.NumberOut;
    kmsKeyId: string | core.StringOut;
    snapshotId: string | core.StringOut;
    throughput: number | core.NumberOut;
    volumeSize: number | core.NumberOut;
    volumeType: string | core.StringOut;
}
export declare class Ebs extends core.Schema<EbsArgs> {
    deleteOnTermination: string | core.StringOut;
    encrypted: string | core.StringOut;
    iops: number | core.NumberOut;
    kmsKeyId: string | core.StringOut;
    snapshotId: string | core.StringOut;
    throughput: number | core.NumberOut;
    volumeSize: number | core.NumberOut;
    volumeType: string | core.StringOut;
}
export interface BlockDeviceMappingsArgs extends core.SchemaArgs {
    deviceName: string | core.StringOut;
    ebs: core.Array<Ebs> | core.ArrayOut<Ebs>;
    noDevice: string | core.StringOut;
    virtualName: string | core.StringOut;
}
export declare class BlockDeviceMappings extends core.Schema<BlockDeviceMappingsArgs> {
    deviceName: string | core.StringOut;
    ebs: core.Array<Ebs> | core.ArrayOut<Ebs>;
    noDevice: string | core.StringOut;
    virtualName: string | core.StringOut;
}
export interface CapacityReservationTargetArgs extends core.SchemaArgs {
    capacityReservationId: string | core.StringOut;
    capacityReservationResourceGroupArn: string | core.StringOut;
}
export declare class CapacityReservationTarget extends core.Schema<CapacityReservationTargetArgs> {
    capacityReservationId: string | core.StringOut;
    capacityReservationResourceGroupArn: string | core.StringOut;
}
export interface CapacityReservationSpecificationArgs extends core.SchemaArgs {
    capacityReservationPreference: string | core.StringOut;
    capacityReservationTarget: core.Array<CapacityReservationTarget> | core.ArrayOut<CapacityReservationTarget>;
}
export declare class CapacityReservationSpecification extends core.Schema<CapacityReservationSpecificationArgs> {
    capacityReservationPreference: string | core.StringOut;
    capacityReservationTarget: core.Array<CapacityReservationTarget> | core.ArrayOut<CapacityReservationTarget>;
}
export interface MaintenanceOptionsArgs extends core.SchemaArgs {
    autoRecovery: string | core.StringOut;
}
export declare class MaintenanceOptions extends core.Schema<MaintenanceOptionsArgs> {
    autoRecovery: string | core.StringOut;
}
export interface HibernationOptionsArgs extends core.SchemaArgs {
    configured: boolean | core.BooleanOut;
}
export declare class HibernationOptions extends core.Schema<HibernationOptionsArgs> {
    configured: boolean | core.BooleanOut;
}
export interface SpotOptionsArgs extends core.SchemaArgs {
    blockDurationMinutes: number | core.NumberOut;
    instanceInterruptionBehavior: string | core.StringOut;
    maxPrice: string | core.StringOut;
    spotInstanceType: string | core.StringOut;
    validUntil: string | core.StringOut;
}
export declare class SpotOptions extends core.Schema<SpotOptionsArgs> {
    blockDurationMinutes: number | core.NumberOut;
    instanceInterruptionBehavior: string | core.StringOut;
    maxPrice: string | core.StringOut;
    spotInstanceType: string | core.StringOut;
    validUntil: string | core.StringOut;
}
export interface InstanceMarketOptionsArgs extends core.SchemaArgs {
    marketType: string | core.StringOut;
    spotOptions: core.Array<SpotOptions> | core.ArrayOut<SpotOptions>;
}
export declare class InstanceMarketOptions extends core.Schema<InstanceMarketOptionsArgs> {
    marketType: string | core.StringOut;
    spotOptions: core.Array<SpotOptions> | core.ArrayOut<SpotOptions>;
}
export interface CreditSpecificationArgs extends core.SchemaArgs {
    cpuCredits: string | core.StringOut;
}
export declare class CreditSpecification extends core.Schema<CreditSpecificationArgs> {
    cpuCredits: string | core.StringOut;
}
export interface PrivateDnsNameOptionsArgs extends core.SchemaArgs {
    enableResourceNameDnsARecord: boolean | core.BooleanOut;
    enableResourceNameDnsAaaaRecord: boolean | core.BooleanOut;
    hostnameType: string | core.StringOut;
}
export declare class PrivateDnsNameOptions extends core.Schema<PrivateDnsNameOptionsArgs> {
    enableResourceNameDnsARecord: boolean | core.BooleanOut;
    enableResourceNameDnsAaaaRecord: boolean | core.BooleanOut;
    hostnameType: string | core.StringOut;
}
export interface CpuOptionsArgs extends core.SchemaArgs {
    coreCount: number | core.NumberOut;
    threadsPerCore: number | core.NumberOut;
}
export declare class CpuOptions extends core.Schema<CpuOptionsArgs> {
    coreCount: number | core.NumberOut;
    threadsPerCore: number | core.NumberOut;
}
export interface MonitoringArgs extends core.SchemaArgs {
    enabled: boolean | core.BooleanOut;
}
export declare class Monitoring extends core.Schema<MonitoringArgs> {
    enabled: boolean | core.BooleanOut;
}
export interface NetworkInterfacesArgs extends core.SchemaArgs {
    associateCarrierIpAddress: string | core.StringOut;
    associatePublicIpAddress: string | core.StringOut;
    deleteOnTermination: string | core.StringOut;
    description: string | core.StringOut;
    deviceIndex: number | core.NumberOut;
    interfaceType: string | core.StringOut;
    ipv4AddressCount: number | core.NumberOut;
    ipv4Addresses: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipv4PrefixCount: number | core.NumberOut;
    ipv4Prefixes: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipv6AddressCount: number | core.NumberOut;
    ipv6Addresses: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipv6PrefixCount: number | core.NumberOut;
    ipv6Prefixes: core.Array<string> | core.ArrayOut<core.StringOut>;
    networkCardIndex: number | core.NumberOut;
    networkInterfaceId: string | core.StringOut;
    privateIpAddress: string | core.StringOut;
    securityGroups: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetId: string | core.StringOut;
}
export declare class NetworkInterfaces extends core.Schema<NetworkInterfacesArgs> {
    associateCarrierIpAddress: string | core.StringOut;
    associatePublicIpAddress: string | core.StringOut;
    deleteOnTermination: string | core.StringOut;
    description: string | core.StringOut;
    deviceIndex: number | core.NumberOut;
    interfaceType: string | core.StringOut;
    ipv4AddressCount: number | core.NumberOut;
    ipv4Addresses: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipv4PrefixCount: number | core.NumberOut;
    ipv4Prefixes: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipv6AddressCount: number | core.NumberOut;
    ipv6Addresses: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipv6PrefixCount: number | core.NumberOut;
    ipv6Prefixes: core.Array<string> | core.ArrayOut<core.StringOut>;
    networkCardIndex: number | core.NumberOut;
    networkInterfaceId: string | core.StringOut;
    privateIpAddress: string | core.StringOut;
    securityGroups: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetId: string | core.StringOut;
}
export interface ElasticGpuSpecificationsArgs extends core.SchemaArgs {
    type: string | core.StringOut;
}
export declare class ElasticGpuSpecifications extends core.Schema<ElasticGpuSpecificationsArgs> {
    type: string | core.StringOut;
}
export interface LicenseSpecificationArgs extends core.SchemaArgs {
    licenseConfigurationArn: string | core.StringOut;
}
export declare class LicenseSpecification extends core.Schema<LicenseSpecificationArgs> {
    licenseConfigurationArn: string | core.StringOut;
}
export interface ElasticInferenceAcceleratorArgs extends core.SchemaArgs {
    type: string | core.StringOut;
}
export declare class ElasticInferenceAccelerator extends core.Schema<ElasticInferenceAcceleratorArgs> {
    type: string | core.StringOut;
}
export interface MetadataOptionsArgs extends core.SchemaArgs {
    httpEndpoint: string | core.StringOut;
    httpProtocolIpv6: string | core.StringOut;
    httpPutResponseHopLimit: number | core.NumberOut;
    httpTokens: string | core.StringOut;
    instanceMetadataTags: string | core.StringOut;
}
export declare class MetadataOptions extends core.Schema<MetadataOptionsArgs> {
    httpEndpoint: string | core.StringOut;
    httpProtocolIpv6: string | core.StringOut;
    httpPutResponseHopLimit: number | core.NumberOut;
    httpTokens: string | core.StringOut;
    instanceMetadataTags: string | core.StringOut;
}
export interface IamInstanceProfileArgs extends core.SchemaArgs {
    arn: string | core.StringOut;
    name: string | core.StringOut;
}
export declare class IamInstanceProfile extends core.Schema<IamInstanceProfileArgs> {
    arn: string | core.StringOut;
    name: string | core.StringOut;
}
export interface DsLaunchTemplateArgs {
    filter?: core.Array<Filter> | core.ArrayOut<Filter>;
    id?: string | core.StringOut;
    name?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class DsLaunchTemplate extends core.Data<DsLaunchTemplateArgs> {
    arn: string | core.StringOut;
    blockDeviceMappings: core.Array<BlockDeviceMappings> | core.ArrayOut<BlockDeviceMappings>;
    capacityReservationSpecification: core.Array<CapacityReservationSpecification> | core.ArrayOut<CapacityReservationSpecification>;
    cpuOptions: core.Array<CpuOptions> | core.ArrayOut<CpuOptions>;
    creditSpecification: core.Array<CreditSpecification> | core.ArrayOut<CreditSpecification>;
    defaultVersion: number | core.NumberOut;
    description: string | core.StringOut;
    disableApiStop: boolean | core.BooleanOut;
    disableApiTermination: boolean | core.BooleanOut;
    ebsOptimized: string | core.StringOut;
    elasticGpuSpecifications: core.Array<ElasticGpuSpecifications> | core.ArrayOut<ElasticGpuSpecifications>;
    elasticInferenceAccelerator: core.Array<ElasticInferenceAccelerator> | core.ArrayOut<ElasticInferenceAccelerator>;
    enclaveOptions: core.Array<EnclaveOptions> | core.ArrayOut<EnclaveOptions>;
    filter?: core.Array<Filter> | core.ArrayOut<Filter>;
    hibernationOptions: core.Array<HibernationOptions> | core.ArrayOut<HibernationOptions>;
    iamInstanceProfile: core.Array<IamInstanceProfile> | core.ArrayOut<IamInstanceProfile>;
    id?: string | core.StringOut;
    imageId: string | core.StringOut;
    instanceInitiatedShutdownBehavior: string | core.StringOut;
    instanceMarketOptions: core.Array<InstanceMarketOptions> | core.ArrayOut<InstanceMarketOptions>;
    instanceRequirements: core.Array<InstanceRequirements> | core.ArrayOut<InstanceRequirements>;
    instanceType: string | core.StringOut;
    kernelId: string | core.StringOut;
    keyName: string | core.StringOut;
    latestVersion: number | core.NumberOut;
    licenseSpecification: core.Array<LicenseSpecification> | core.ArrayOut<LicenseSpecification>;
    maintenanceOptions: core.Array<MaintenanceOptions> | core.ArrayOut<MaintenanceOptions>;
    metadataOptions: core.Array<MetadataOptions> | core.ArrayOut<MetadataOptions>;
    monitoring: core.Array<Monitoring> | core.ArrayOut<Monitoring>;
    name?: string | core.StringOut;
    networkInterfaces: core.Array<NetworkInterfaces> | core.ArrayOut<NetworkInterfaces>;
    placement: core.Array<Placement> | core.ArrayOut<Placement>;
    privateDnsNameOptions: core.Array<PrivateDnsNameOptions> | core.ArrayOut<PrivateDnsNameOptions>;
    ramDiskId: string | core.StringOut;
    securityGroupNames: core.Array<string> | core.ArrayOut<core.StringOut>;
    tagSpecifications: core.Array<TagSpecifications> | core.ArrayOut<TagSpecifications>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    userData: string | core.StringOut;
    vpcSecurityGroupIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    constructor(name: string, args?: DsLaunchTemplateArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_launch_template.d.ts.map