import * as core from "@terrascript/core";
export interface EbsBlockDeviceArgs extends core.SchemaArgs {
    deleteOnTermination: boolean | core.BooleanOut;
    deviceName: string | core.StringOut;
    encrypted: boolean | core.BooleanOut;
    iops: number | core.NumberOut;
    noDevice: boolean | core.BooleanOut;
    snapshotId: string | core.StringOut;
    throughput: number | core.NumberOut;
    volumeSize: number | core.NumberOut;
    volumeType: string | core.StringOut;
}
export declare class EbsBlockDevice extends core.Schema<EbsBlockDeviceArgs> {
    deleteOnTermination: boolean | core.BooleanOut;
    deviceName: string | core.StringOut;
    encrypted: boolean | core.BooleanOut;
    iops: number | core.NumberOut;
    noDevice: boolean | core.BooleanOut;
    snapshotId: string | core.StringOut;
    throughput: number | core.NumberOut;
    volumeSize: number | core.NumberOut;
    volumeType: string | core.StringOut;
}
export interface RootBlockDeviceArgs extends core.SchemaArgs {
    deleteOnTermination: boolean | core.BooleanOut;
    encrypted: boolean | core.BooleanOut;
    iops: number | core.NumberOut;
    throughput: number | core.NumberOut;
    volumeSize: number | core.NumberOut;
    volumeType: string | core.StringOut;
}
export declare class RootBlockDevice extends core.Schema<RootBlockDeviceArgs> {
    deleteOnTermination: boolean | core.BooleanOut;
    encrypted: boolean | core.BooleanOut;
    iops: number | core.NumberOut;
    throughput: number | core.NumberOut;
    volumeSize: number | core.NumberOut;
    volumeType: string | core.StringOut;
}
export interface EphemeralBlockDeviceArgs extends core.SchemaArgs {
    deviceName: string | core.StringOut;
    virtualName: string | core.StringOut;
}
export declare class EphemeralBlockDevice extends core.Schema<EphemeralBlockDeviceArgs> {
    deviceName: string | core.StringOut;
    virtualName: string | core.StringOut;
}
export interface MetadataOptionsArgs extends core.SchemaArgs {
    httpEndpoint: string | core.StringOut;
    httpPutResponseHopLimit: number | core.NumberOut;
    httpTokens: string | core.StringOut;
}
export declare class MetadataOptions extends core.Schema<MetadataOptionsArgs> {
    httpEndpoint: string | core.StringOut;
    httpPutResponseHopLimit: number | core.NumberOut;
    httpTokens: string | core.StringOut;
}
export interface DsLaunchConfigurationArgs {
    name: string | core.StringOut;
}
export declare class DsLaunchConfiguration extends core.Data<DsLaunchConfigurationArgs> {
    arn: string | core.StringOut;
    associatePublicIpAddress: boolean | core.BooleanOut;
    ebsBlockDevice: core.Array<EbsBlockDevice> | core.ArrayOut<EbsBlockDevice>;
    ebsOptimized: boolean | core.BooleanOut;
    enableMonitoring: boolean | core.BooleanOut;
    ephemeralBlockDevice: core.Array<EphemeralBlockDevice> | core.ArrayOut<EphemeralBlockDevice>;
    iamInstanceProfile: string | core.StringOut;
    id: string | core.StringOut;
    imageId: string | core.StringOut;
    instanceType: string | core.StringOut;
    keyName: string | core.StringOut;
    metadataOptions: core.Array<MetadataOptions> | core.ArrayOut<MetadataOptions>;
    name: string | core.StringOut;
    placementTenancy: string | core.StringOut;
    rootBlockDevice: core.Array<RootBlockDevice> | core.ArrayOut<RootBlockDevice>;
    securityGroups: core.Array<string> | core.ArrayOut<core.StringOut>;
    spotPrice: string | core.StringOut;
    userData: string | core.StringOut;
    vpcClassicLinkId: string | core.StringOut;
    vpcClassicLinkSecurityGroups: core.Array<string> | core.ArrayOut<core.StringOut>;
    constructor(name: string, args?: DsLaunchConfigurationArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_launch_configuration.d.ts.map