import * as core from "@terrascript/core";
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 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;
    noDevice?: boolean | core.BooleanOut;
    virtualName?: string | core.StringOut;
}
export declare class EphemeralBlockDevice extends core.Schema<EphemeralBlockDeviceArgs> {
    deviceName: string | core.StringOut;
    noDevice?: boolean | core.BooleanOut;
    virtualName?: string | core.StringOut;
}
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 LaunchConfigurationArgs extends core.ResourceArgs {
    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;
    imageId: string | core.StringOut;
    instanceType: string | core.StringOut;
    keyName?: string | core.StringOut;
    metadataOptions?: MetadataOptions;
    name?: string | core.StringOut;
    namePrefix?: string | core.StringOut;
    placementTenancy?: string | core.StringOut;
    rootBlockDevice?: RootBlockDevice;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    spotPrice?: string | core.StringOut;
    userData?: string | core.StringOut;
    userDataBase64?: string | core.StringOut;
    vpcClassicLinkId?: string | core.StringOut;
    vpcClassicLinkSecurityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class LaunchConfiguration extends core.Resource<LaunchConfigurationArgs> {
    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?: MetadataOptions;
    name?: string | core.StringOut;
    namePrefix?: string | core.StringOut;
    placementTenancy?: string | core.StringOut;
    rootBlockDevice?: RootBlockDevice;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    spotPrice?: string | core.StringOut;
    userData?: string | core.StringOut;
    userDataBase64?: string | core.StringOut;
    vpcClassicLinkId?: string | core.StringOut;
    vpcClassicLinkSecurityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    constructor(name: string, args?: LaunchConfigurationArgs);
    getNamespace(): string;
}
//# sourceMappingURL=launch_configuration.d.ts.map