import * as core from "@terrascript/core";
export interface ConfigurationsArgs extends core.SchemaArgs {
    classification?: string | core.StringOut;
    properties?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class Configurations extends core.Schema<ConfigurationsArgs> {
    classification?: string | core.StringOut;
    properties?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export interface EbsConfigArgs extends core.SchemaArgs {
    iops?: number | core.NumberOut;
    size: number | core.NumberOut;
    type: string | core.StringOut;
    volumesPerInstance?: number | core.NumberOut;
}
export declare class EbsConfig extends core.Schema<EbsConfigArgs> {
    iops?: number | core.NumberOut;
    size: number | core.NumberOut;
    type: string | core.StringOut;
    volumesPerInstance?: number | core.NumberOut;
}
export interface InstanceTypeConfigsArgs extends core.SchemaArgs {
    bidPrice?: string | core.StringOut;
    bidPriceAsPercentageOfOnDemandPrice?: number | core.NumberOut;
    configurations?: core.Array<Configurations> | core.ArrayOut<Configurations>;
    ebsConfig?: core.Array<EbsConfig> | core.ArrayOut<EbsConfig>;
    instanceType: string | core.StringOut;
    weightedCapacity?: number | core.NumberOut;
}
export declare class InstanceTypeConfigs extends core.Schema<InstanceTypeConfigsArgs> {
    bidPrice?: string | core.StringOut;
    bidPriceAsPercentageOfOnDemandPrice?: number | core.NumberOut;
    configurations?: core.Array<Configurations> | core.ArrayOut<Configurations>;
    ebsConfig?: core.Array<EbsConfig> | core.ArrayOut<EbsConfig>;
    instanceType: string | core.StringOut;
    weightedCapacity?: number | core.NumberOut;
}
export interface OnDemandSpecificationArgs extends core.SchemaArgs {
    allocationStrategy: string | core.StringOut;
}
export declare class OnDemandSpecification extends core.Schema<OnDemandSpecificationArgs> {
    allocationStrategy: string | core.StringOut;
}
export interface SpotSpecificationArgs extends core.SchemaArgs {
    allocationStrategy: string | core.StringOut;
    blockDurationMinutes?: number | core.NumberOut;
    timeoutAction: string | core.StringOut;
    timeoutDurationMinutes: number | core.NumberOut;
}
export declare class SpotSpecification extends core.Schema<SpotSpecificationArgs> {
    allocationStrategy: string | core.StringOut;
    blockDurationMinutes?: number | core.NumberOut;
    timeoutAction: string | core.StringOut;
    timeoutDurationMinutes: number | core.NumberOut;
}
export interface LaunchSpecificationsArgs extends core.SchemaArgs {
    onDemandSpecification?: core.Array<OnDemandSpecification> | core.ArrayOut<OnDemandSpecification>;
    spotSpecification?: core.Array<SpotSpecification> | core.ArrayOut<SpotSpecification>;
}
export declare class LaunchSpecifications extends core.Schema<LaunchSpecificationsArgs> {
    onDemandSpecification?: core.Array<OnDemandSpecification> | core.ArrayOut<OnDemandSpecification>;
    spotSpecification?: core.Array<SpotSpecification> | core.ArrayOut<SpotSpecification>;
}
export interface InstanceFleetArgs extends core.ResourceArgs {
    clusterId: string | core.StringOut;
    instanceTypeConfigs?: core.Array<InstanceTypeConfigs> | core.ArrayOut<InstanceTypeConfigs>;
    launchSpecifications?: LaunchSpecifications;
    name?: string | core.StringOut;
    targetOnDemandCapacity?: number | core.NumberOut;
    targetSpotCapacity?: number | core.NumberOut;
}
export declare class InstanceFleet extends core.Resource<InstanceFleetArgs> {
    clusterId: string | core.StringOut;
    id: string | core.StringOut;
    instanceTypeConfigs?: core.Array<InstanceTypeConfigs> | core.ArrayOut<InstanceTypeConfigs>;
    launchSpecifications?: LaunchSpecifications;
    name?: string | core.StringOut;
    provisionedOnDemandCapacity: number | core.NumberOut;
    provisionedSpotCapacity: number | core.NumberOut;
    targetOnDemandCapacity?: number | core.NumberOut;
    targetSpotCapacity?: number | core.NumberOut;
    constructor(name: string, args?: InstanceFleetArgs);
    getNamespace(): string;
}
//# sourceMappingURL=instance_fleet.d.ts.map