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 MaintenanceOptionsArgs extends core.SchemaArgs {
    autoRecovery: string | core.StringOut;
}
export declare class MaintenanceOptions extends core.Schema<MaintenanceOptionsArgs> {
    autoRecovery: 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 EbsBlockDeviceArgs extends core.SchemaArgs {
    deleteOnTermination: boolean | core.BooleanOut;
    deviceName: string | core.StringOut;
    encrypted: boolean | core.BooleanOut;
    iops: number | core.NumberOut;
    kmsKeyId: string | core.StringOut;
    snapshotId: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    throughput: number | core.NumberOut;
    volumeId: string | core.StringOut;
    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;
    kmsKeyId: string | core.StringOut;
    snapshotId: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    throughput: number | core.NumberOut;
    volumeId: string | core.StringOut;
    volumeSize: number | core.NumberOut;
    volumeType: string | core.StringOut;
}
export interface EnclaveOptionsArgs extends core.SchemaArgs {
    enabled: boolean | core.BooleanOut;
}
export declare class EnclaveOptions extends core.Schema<EnclaveOptionsArgs> {
    enabled: boolean | core.BooleanOut;
}
export interface RootBlockDeviceArgs extends core.SchemaArgs {
    deleteOnTermination: boolean | core.BooleanOut;
    deviceName: string | core.StringOut;
    encrypted: boolean | core.BooleanOut;
    iops: number | core.NumberOut;
    kmsKeyId: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    throughput: number | core.NumberOut;
    volumeId: string | core.StringOut;
    volumeSize: number | core.NumberOut;
    volumeType: string | core.StringOut;
}
export declare class RootBlockDevice extends core.Schema<RootBlockDeviceArgs> {
    deleteOnTermination: boolean | core.BooleanOut;
    deviceName: string | core.StringOut;
    encrypted: boolean | core.BooleanOut;
    iops: number | core.NumberOut;
    kmsKeyId: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    throughput: number | core.NumberOut;
    volumeId: string | core.StringOut;
    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 CreditSpecificationArgs extends core.SchemaArgs {
    cpuCredits: string | core.StringOut;
}
export declare class CreditSpecification extends core.Schema<CreditSpecificationArgs> {
    cpuCredits: string | core.StringOut;
}
export interface MetadataOptionsArgs extends core.SchemaArgs {
    httpEndpoint: 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;
    httpPutResponseHopLimit: number | core.NumberOut;
    httpTokens: string | core.StringOut;
    instanceMetadataTags: string | core.StringOut;
}
export interface DsInstanceArgs {
    filter?: core.Array<Filter> | core.ArrayOut<Filter>;
    getPasswordData?: boolean | core.BooleanOut;
    getUserData?: boolean | core.BooleanOut;
    instanceId?: string | core.StringOut;
    instanceTags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class DsInstance extends core.Data<DsInstanceArgs> {
    ami: string | core.StringOut;
    arn: string | core.StringOut;
    associatePublicIpAddress: boolean | core.BooleanOut;
    availabilityZone: string | core.StringOut;
    creditSpecification: core.Array<CreditSpecification> | core.ArrayOut<CreditSpecification>;
    disableApiStop: boolean | core.BooleanOut;
    disableApiTermination: boolean | core.BooleanOut;
    ebsBlockDevice: core.Array<EbsBlockDevice> | core.ArrayOut<EbsBlockDevice>;
    ebsOptimized: boolean | core.BooleanOut;
    enclaveOptions: core.Array<EnclaveOptions> | core.ArrayOut<EnclaveOptions>;
    ephemeralBlockDevice: core.Array<EphemeralBlockDevice> | core.ArrayOut<EphemeralBlockDevice>;
    filter?: core.Array<Filter> | core.ArrayOut<Filter>;
    getPasswordData?: boolean | core.BooleanOut;
    getUserData?: boolean | core.BooleanOut;
    hostId: string | core.StringOut;
    iamInstanceProfile: string | core.StringOut;
    id: string | core.StringOut;
    instanceId?: string | core.StringOut;
    instanceState: string | core.StringOut;
    instanceTags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    instanceType: string | core.StringOut;
    ipv6Addresses: core.Array<string> | core.ArrayOut<core.StringOut>;
    keyName: string | core.StringOut;
    maintenanceOptions: core.Array<MaintenanceOptions> | core.ArrayOut<MaintenanceOptions>;
    metadataOptions: core.Array<MetadataOptions> | core.ArrayOut<MetadataOptions>;
    monitoring: boolean | core.BooleanOut;
    networkInterfaceId: string | core.StringOut;
    outpostArn: string | core.StringOut;
    passwordData: string | core.StringOut;
    placementGroup: string | core.StringOut;
    placementPartitionNumber: number | core.NumberOut;
    privateDns: string | core.StringOut;
    privateDnsNameOptions: core.Array<PrivateDnsNameOptions> | core.ArrayOut<PrivateDnsNameOptions>;
    privateIp: string | core.StringOut;
    publicDns: string | core.StringOut;
    publicIp: string | core.StringOut;
    rootBlockDevice: core.Array<RootBlockDevice> | core.ArrayOut<RootBlockDevice>;
    secondaryPrivateIps: core.Array<string> | core.ArrayOut<core.StringOut>;
    securityGroups: core.Array<string> | core.ArrayOut<core.StringOut>;
    sourceDestCheck: boolean | core.BooleanOut;
    subnetId: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tenancy: string | core.StringOut;
    userData: string | core.StringOut;
    userDataBase64: string | core.StringOut;
    vpcSecurityGroupIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    constructor(name: string, args?: DsInstanceArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_instance.d.ts.map