export interface TagSpecification {
    /** Type of resource being tagged. */
    ResourceType?: 'instance' | 'volume' | 'spot-instances-request' | 'network-interface';
    /** Collection of tags for the specified resource. */
    Tags?: any[];
}
export interface Tag {
    /** Unique identifier for the tag. */
    Key?: string;
    /** Value associated with the tag key. */
    Value?: string;
}
export interface CapacityReservationSpecification {
    /** Preference for using capacity reservation. */
    CapacityReservationPreference?: 'capacity-reservations-only' | 'open' | 'none';
    /** Specific capacity reservation target. */
    CapacityReservationTarget?: any;
}
export interface CpuOptionsRequest {
    /** AMD Secure Encrypted Virtualization configuration. */
    AmdSevSnp?: 'enabled' | 'disabled';
    /** Number of CPU cores to allocate. */
    CoreCount?: number;
    /** Number of threads per CPU core. */
    ThreadsPerCore?: number;
}
export interface CreditSpecificationRequest {
    /** CPU credit specification mode. */
    CpuCredits?: 'standard' | 'unlimited';
}
export interface EnclaveOptionsRequest {
    /** Enables or disables AWS Nitro Enclaves for enhanced security. */
    Enabled?: boolean;
}
export interface HibernationOptionsRequest {
    /** Enables or disables instance hibernation capability. */
    Configured?: boolean;
}
export interface IamInstanceProfileSpecification {
    /** Amazon Resource Name (ARN) of the IAM instance profile. */
    Arn?: string;
    /** Name of the IAM instance profile. */
    Name?: string;
}
export interface InstanceMarketOptionsRequest {
    /** Specifies the type of marketplace for instance deployment. */
    MarketType?: 'spot' | 'capacity-block';
    /** Configuration options for spot instance deployment. */
    SpotOptions?: any;
}
export interface InstanceMaintenanceOptionsRequest {
    /** Enables or disables automatic instance recovery. */
    AutoRecovery?: 'disabled' | 'default';
}
export interface InstanceMetadataOptionsRequest {
    /** Enables or disables HTTP endpoint for instance metadata. */
    HttpEndpoint?: 'enabled' | 'disabled';
    /** Configures IPv6 support for instance metadata HTTP protocol. */
    HttpProtocolIpv6?: 'enabled' | 'disabled';
    /** Sets maximum number of network hops for metadata PUT responses. */
    HttpPutResponseHopLimit?: number;
    /** Configures token requirement for instance metadata retrieval. */
    HttpTokens?: 'optional' | 'required';
    /** Enables or disables instance metadata tags retrieval. */
    InstanceMetadataTags?: 'enabled' | 'disabled';
}
export interface RunInstancesMonitoringEnabled {
    /** Enables or disables detailed instance monitoring. */
    Enabled?: boolean;
}
export interface InstanceNetworkPerformanceOptionsRequest {
    /** Defines bandwidth allocation strategy for network interfaces. */
    BandwidthWeighting?: 'default' | 'vpc-1' | 'ebs-1';
}
export interface Placement {
    /** Specifies host affinity for dedicated instances. */
    Affinity?: string;
    /** Identifies the specific AWS availability zone. */
    AvailabilityZone?: string;
    /** Unique identifier for placement group. */
    GroupId?: string;
    /** Name of the placement group. */
    GroupName?: string;
    /** Identifies the specific dedicated host. */
    HostId?: string;
    /** ARN of the host resource group. */
    HostResourceGroupArn?: string;
    /** Specifies partition number for partition placement groups. */
    PartitionNumber?: number;
    /** Defines instance tenancy configuration. */
    Tenancy?: 'default' | 'dedicated' | 'host';
}
export interface PrivateDnsNameOptionsRequest {
    /** Specifies the type of hostname configuration. */
    HostnameType?: 'ip-name' | 'resource-name';
    /** Enables DNS A record for resource name resolution. */
    EnableResourceNameDnsARecord?: boolean;
    /** Enables DNS AAAA record for resource name resolution. */
    EnableResourceNameDnsAAAARecord?: boolean;
}
export interface ManagedInstanceRequest {
    /** Configures block device mappings for storage. */
    BlockDeviceMappings?: any[];
    /** Specifies capacity reservation preferences. */
    CapacityReservationSpecification?: CapacityReservationSpecification;
    /** Configures CPU-specific settings. */
    CpuOptions?: CpuOptionsRequest;
    /** Defines CPU credit configuration for burstable instances. */
    CreditSpecification?: CreditSpecificationRequest;
    /** Prevents API-initiated instance stop. */
    DisableApiStop?: boolean;
    /** Enables optimized EBS performance. */
    EbsOptimized?: boolean;
    /** Enables primary IPv6 address configuration. */
    EnablePrimaryIpv6?: boolean;
    /** Configures AWS Nitro Enclave settings. */
    EnclaveOptions?: EnclaveOptionsRequest;
    /** Configures instance hibernation capabilities. */
    HibernationOptions?: HibernationOptionsRequest;
    /** Specifies IAM instance profile configuration. */
    IamInstanceProfile?: IamInstanceProfileSpecification;
    /** Identifies the Amazon Machine Image (AMI) for the instance. */
    ImageId?: string;
    /** Configures marketplace-specific deployment options. */
    InstanceMarketOptions?: InstanceMarketOptionsRequest;
    /** Specifies the WorkSpace Instance type. */
    InstanceType?: string;
    /** Configures specific IPv6 addresses. */
    Ipv6Addresses?: any[];
    /** Specifies number of IPv6 addresses to assign. */
    Ipv6AddressCount?: number;
    /** Identifies the kernel for the instance. */
    KernelId?: string;
    /** Specifies the key pair for instance access. */
    KeyName?: string;
    /** Configures license-related settings. */
    LicenseSpecifications?: any[];
    /** Defines automatic maintenance settings. */
    MaintenanceOptions?: InstanceMaintenanceOptionsRequest;
    /** Configures instance metadata service settings. */
    MetadataOptions?: InstanceMetadataOptionsRequest;
    /** Enables or disables detailed instance monitoring. */
    Monitoring?: RunInstancesMonitoringEnabled;
    /** Configures network interface settings. */
    NetworkInterfaces?: any[];
    /** Defines network performance configuration. */
    NetworkPerformanceOptions?: InstanceNetworkPerformanceOptionsRequest;
    /** Specifies instance placement preferences. */
    Placement?: Placement;
    /** Configures private DNS name settings. */
    PrivateDnsNameOptions?: PrivateDnsNameOptionsRequest;
    /** Specifies the primary private IP address. */
    PrivateIpAddress?: string;
    /** Identifies the ramdisk for the instance. */
    RamdiskId?: string;
    /** Specifies security group identifiers. */
    SecurityGroupIds?: string[];
    /** Configures security group settings. */
    SecurityGroups?: string[];
    /** Identifies the subnet for the instance. */
    SubnetId?: string;
    /** Configures resource tagging specifications. */
    TagSpecifications?: any[];
    /** Provides custom initialization data for the instance. */
    UserData?: string;
}
export interface BillingConfiguration {
    /** Specifies the billing mode for WorkSpace Instances. MONTHLY provides fixed monthly rates for predictable budgeting, while HOURLY enables pay-per-second billing for actual usage. */
    BillingMode: 'MONTHLY' | 'HOURLY';
}
export interface InstanceConfigurationFilter {
    /** Filters WorkSpace Instance types based on supported billing modes. Allows customers to search for instance types that support their preferred billing model, such as HOURLY or MONTHLY billing. */
    BillingMode: 'MONTHLY' | 'HOURLY';
    /** Filters WorkSpace Instance types by operating system platform. Allows customers to find instances that support their desired OS, such as Windows, Linux/UNIX, Ubuntu Pro, RHEL, or SUSE. */
    PlatformType: 'Windows' | 'Windows BYOL' | 'Linux/UNIX' | 'Ubuntu Pro Linux' | 'Red Hat Enterprise Linux' | 'Red Hat BYOL Linux' | 'SUSE Linux';
    /** Filters WorkSpace Instance types by tenancy model. Allows customers to find instances that match their tenancy requirements, such as SHARED or DEDICATED. */
    Tenancy: 'SHARED' | 'DEDICATED';
}
/** Specifies volume attachment parameters. */
export interface AssociateVolumeInput {
    /** Device path for volume attachment. */
    Device: string;
    /** Volume to be attached. */
    VolumeId: string;
    /** WorkSpace Instance to attach volume to. */
    WorkspaceInstanceId: string;
}
/** Specifies volume creation parameters. */
export interface CreateVolumeInput {
    /** Availability zone for the volume. */
    AvailabilityZone: string;
    /** Unique token to prevent duplicate volume creation. */
    ClientToken?: string;
    /** Indicates if the volume should be encrypted. */
    Encrypted?: boolean;
    /** Input/output operations per second for the volume. */
    Iops?: number;
    /** KMS key for volume encryption. */
    KmsKeyId?: string;
    /** Volume size in gigabytes. */
    SizeInGB?: number;
    /** Source snapshot for volume creation. */
    SnapshotId?: string;
    /** Metadata tags for the volume. */
    TagSpecifications?: TagSpecification[];
    /** Volume throughput performance. */
    Throughput?: number;
    /** Type of EBS volume. */
    VolumeType?: 'standard' | 'io1' | 'io2' | 'gp2' | 'sc1' | 'st1' | 'gp3';
}
/** Defines the configuration parameters for creating a new WorkSpaces Instance. */
export interface CreateWorkspaceInstanceInput {
    /** Comprehensive configuration settings for the WorkSpaces Instance, including network, compute, and storage parameters. */
    ManagedInstance: ManagedInstanceRequest;
    /** Optional billing configuration for the WorkSpace Instance. Allows customers to specify their preferred billing mode when creating a new instance. Defaults to hourly billing if not specified. */
    BillingConfiguration?: BillingConfiguration;
    /** Unique token to ensure idempotent instance creation, preventing duplicate workspace launches. */
    ClientToken?: string;
    /** Optional metadata tags for categorizing and managing WorkSpaces Instances. */
    Tags?: Tag[];
}
/** Specifies the volume to delete. */
export interface DeleteVolumeInput {
    /** Identifier of the volume to delete. */
    VolumeId: string;
}
/** The WorkSpace to delete */
export interface DeleteWorkspaceInstanceInput {
    /** Unique identifier of the WorkSpaces Instance targeted for deletion. */
    WorkspaceInstanceId: string;
}
/** Specifies volume detachment parameters. */
export interface DisassociateVolumeInput {
    /** Volume to be detached. */
    VolumeId: string;
    /** WorkSpace Instance to detach volume from. */
    WorkspaceInstanceId: string;
    /** Device path of volume to detach. */
    Device?: string;
    /** Mode for volume detachment. */
    DisassociateMode?: 'FORCE' | 'NO_FORCE';
}
/** Identifies the WorkSpaces Instance to retrieve detailed information for. */
export interface GetWorkspaceInstanceInput {
    /** Unique identifier of the WorkSpace Instance to retrieve. */
    WorkspaceInstanceId: string;
}
/** Defines input parameters for retrieving supported WorkSpaces Instances instance types. */
export interface ListInstanceTypesInput {
    /** Optional filter to narrow instance type results based on configuration requirements. Only returns instance types that support the specified combination of tenancy, platform type, and billing mode. */
    InstanceConfigurationFilter?: InstanceConfigurationFilter;
    /** Maximum number of instance types to return in a single API call. Enables pagination of instance type results. */
    MaxResults?: number;
    /** Pagination token for retrieving subsequent pages of instance type results. */
    NextToken?: string;
}
/** Defines input parameters for retrieving supported WorkSpaces Instances regions. */
export interface ListRegionsInput {
    /** Maximum number of regions to return in a single API call. Enables pagination of region results. */
    MaxResults?: number;
    /** Pagination token for retrieving subsequent pages of region results. */
    NextToken?: string;
}
/** Specifies the WorkSpace Instance to retrieve tags for. */
export interface ListTagsForResourceInput {
    /** Unique identifier of the WorkSpace Instance. */
    WorkspaceInstanceId: string;
}
/** Defines filters and pagination parameters for retrieving WorkSpaces Instances. */
export interface ListWorkspaceInstancesInput {
    /** Maximum number of WorkSpaces Instances to return in a single response. */
    MaxResults?: number;
    /** Pagination token for retrieving subsequent pages of WorkSpaces Instances. */
    NextToken?: string;
    /** Filter WorkSpaces Instances by their current provisioning states. */
    ProvisionStates?: 'ALLOCATING' | 'ALLOCATED' | 'DEALLOCATING' | 'DEALLOCATED' | 'ERROR_ALLOCATING' | 'ERROR_DEALLOCATING'[];
}
/** Specifies tags to add to a WorkSpace Instance. */
export interface TagResourceInput {
    /** Tags to be added to the WorkSpace Instance. */
    Tags: Tag[];
    /** Unique identifier of the WorkSpace Instance to tag. */
    WorkspaceInstanceId: string;
}
/** Specifies tags to remove from a WorkSpace Instance. */
export interface UntagResourceInput {
    /** Keys of tags to be removed. */
    TagKeys: string[];
    /** Unique identifier of the WorkSpace Instance to untag. */
    WorkspaceInstanceId: string;
}
/** Workspaces Instances service binding for Step Functions SDK integrations. */
export declare class WorkspacesInstances {
    constructor();
    associateVolume<T>(params: AssociateVolumeInput): Promise<T>;
    createVolume<T>(params: CreateVolumeInput): Promise<T>;
    createWorkspaceInstance<T>(params: CreateWorkspaceInstanceInput): Promise<T>;
    deleteVolume<T>(params: DeleteVolumeInput): Promise<T>;
    deleteWorkspaceInstance<T>(params: DeleteWorkspaceInstanceInput): Promise<T>;
    disassociateVolume<T>(params: DisassociateVolumeInput): Promise<T>;
    getWorkspaceInstance<T>(params: GetWorkspaceInstanceInput): Promise<T>;
    listInstanceTypes<T>(params: ListInstanceTypesInput): Promise<T>;
    listRegions<T>(params: ListRegionsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listWorkspaceInstances<T>(params: ListWorkspaceInstancesInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=WorkspacesInstances.d.ts.map