import * as core from "@terrascript/core";
export interface CapacityRebalanceArgs extends core.SchemaArgs {
    replacementStrategy?: string | core.StringOut;
}
export declare class CapacityRebalance extends core.Schema<CapacityRebalanceArgs> {
    replacementStrategy?: string | core.StringOut;
}
export interface MaintenanceStrategiesArgs extends core.SchemaArgs {
    capacityRebalance?: CapacityRebalance;
}
export declare class MaintenanceStrategies extends core.Schema<MaintenanceStrategiesArgs> {
    capacityRebalance?: CapacityRebalance;
}
export interface SpotOptionsArgs extends core.SchemaArgs {
    allocationStrategy?: string | core.StringOut;
    instanceInterruptionBehavior?: string | core.StringOut;
    instancePoolsToUseCount?: number | core.NumberOut;
    maintenanceStrategies?: MaintenanceStrategies;
}
export declare class SpotOptions extends core.Schema<SpotOptionsArgs> {
    allocationStrategy?: string | core.StringOut;
    instanceInterruptionBehavior?: string | core.StringOut;
    instancePoolsToUseCount?: number | core.NumberOut;
    maintenanceStrategies?: MaintenanceStrategies;
}
export interface TargetCapacitySpecificationArgs extends core.SchemaArgs {
    defaultTargetCapacityType: string | core.StringOut;
    onDemandTargetCapacity?: number | core.NumberOut;
    spotTargetCapacity?: number | core.NumberOut;
    totalTargetCapacity: number | core.NumberOut;
}
export declare class TargetCapacitySpecification extends core.Schema<TargetCapacitySpecificationArgs> {
    defaultTargetCapacityType: string | core.StringOut;
    onDemandTargetCapacity?: number | core.NumberOut;
    spotTargetCapacity?: number | core.NumberOut;
    totalTargetCapacity: number | core.NumberOut;
}
export interface LaunchTemplateSpecificationArgs extends core.SchemaArgs {
    launchTemplateId?: string | core.StringOut;
    launchTemplateName?: string | core.StringOut;
    version: string | core.StringOut;
}
export declare class LaunchTemplateSpecification extends core.Schema<LaunchTemplateSpecificationArgs> {
    launchTemplateId?: string | core.StringOut;
    launchTemplateName?: string | core.StringOut;
    version: string | core.StringOut;
}
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 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 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 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 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 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 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 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 InstanceRequirementsArgs extends core.SchemaArgs {
    acceleratorCount?: AcceleratorCount;
    acceleratorManufacturers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    acceleratorNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
    acceleratorTotalMemoryMib?: AcceleratorTotalMemoryMib;
    acceleratorTypes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    bareMetal?: string | core.StringOut;
    baselineEbsBandwidthMbps?: 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?: MemoryGibPerVcpu;
    memoryMib: MemoryMib;
    networkInterfaceCount?: NetworkInterfaceCount;
    onDemandMaxPricePercentageOverLowestPrice?: number | core.NumberOut;
    requireHibernateSupport?: boolean | core.BooleanOut;
    spotMaxPricePercentageOverLowestPrice?: number | core.NumberOut;
    totalLocalStorageGb?: TotalLocalStorageGb;
    vcpuCount: VcpuCount;
}
export declare class InstanceRequirements extends core.Schema<InstanceRequirementsArgs> {
    acceleratorCount?: AcceleratorCount;
    acceleratorManufacturers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    acceleratorNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
    acceleratorTotalMemoryMib?: AcceleratorTotalMemoryMib;
    acceleratorTypes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    bareMetal?: string | core.StringOut;
    baselineEbsBandwidthMbps?: 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?: MemoryGibPerVcpu;
    memoryMib: MemoryMib;
    networkInterfaceCount?: NetworkInterfaceCount;
    onDemandMaxPricePercentageOverLowestPrice?: number | core.NumberOut;
    requireHibernateSupport?: boolean | core.BooleanOut;
    spotMaxPricePercentageOverLowestPrice?: number | core.NumberOut;
    totalLocalStorageGb?: TotalLocalStorageGb;
    vcpuCount: VcpuCount;
}
export interface OverrideArgs extends core.SchemaArgs {
    availabilityZone?: string | core.StringOut;
    instanceRequirements?: InstanceRequirements;
    instanceType?: string | core.StringOut;
    maxPrice?: string | core.StringOut;
    priority?: number | core.NumberOut;
    subnetId?: string | core.StringOut;
    weightedCapacity?: number | core.NumberOut;
}
export declare class Override extends core.Schema<OverrideArgs> {
    availabilityZone?: string | core.StringOut;
    instanceRequirements?: InstanceRequirements;
    instanceType?: string | core.StringOut;
    maxPrice?: string | core.StringOut;
    priority?: number | core.NumberOut;
    subnetId?: string | core.StringOut;
    weightedCapacity?: number | core.NumberOut;
}
export interface LaunchTemplateConfigArgs extends core.SchemaArgs {
    launchTemplateSpecification: LaunchTemplateSpecification;
    override?: core.Array<Override> | core.ArrayOut<Override>;
}
export declare class LaunchTemplateConfig extends core.Schema<LaunchTemplateConfigArgs> {
    launchTemplateSpecification: LaunchTemplateSpecification;
    override?: core.Array<Override> | core.ArrayOut<Override>;
}
export interface OnDemandOptionsArgs extends core.SchemaArgs {
    allocationStrategy?: string | core.StringOut;
}
export declare class OnDemandOptions extends core.Schema<OnDemandOptionsArgs> {
    allocationStrategy?: string | core.StringOut;
}
export interface FleetArgs extends core.ResourceArgs {
    context?: string | core.StringOut;
    excessCapacityTerminationPolicy?: string | core.StringOut;
    launchTemplateConfig: LaunchTemplateConfig;
    onDemandOptions?: OnDemandOptions;
    replaceUnhealthyInstances?: boolean | core.BooleanOut;
    spotOptions?: SpotOptions;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    targetCapacitySpecification: TargetCapacitySpecification;
    terminateInstances?: boolean | core.BooleanOut;
    terminateInstancesWithExpiration?: boolean | core.BooleanOut;
    type?: string | core.StringOut;
}
export declare class Fleet extends core.Resource<FleetArgs> {
    arn: string | core.StringOut;
    context?: string | core.StringOut;
    excessCapacityTerminationPolicy?: string | core.StringOut;
    id: string | core.StringOut;
    launchTemplateConfig: LaunchTemplateConfig;
    onDemandOptions?: OnDemandOptions;
    replaceUnhealthyInstances?: boolean | core.BooleanOut;
    spotOptions?: SpotOptions;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    targetCapacitySpecification: TargetCapacitySpecification;
    terminateInstances?: boolean | core.BooleanOut;
    terminateInstancesWithExpiration?: boolean | core.BooleanOut;
    type?: string | core.StringOut;
    constructor(name: string, args?: FleetArgs);
    getNamespace(): string;
}
//# sourceMappingURL=fleet.d.ts.map