import * as core from "@terrascript/core";
export interface RuntimePlatformArgs extends core.SchemaArgs {
    cpuArchitecture?: string | core.StringOut;
    operatingSystemFamily?: string | core.StringOut;
}
export declare class RuntimePlatform extends core.Schema<RuntimePlatformArgs> {
    cpuArchitecture?: string | core.StringOut;
    operatingSystemFamily?: string | core.StringOut;
}
export interface InferenceAcceleratorArgs extends core.SchemaArgs {
    deviceName: string | core.StringOut;
    deviceType: string | core.StringOut;
}
export declare class InferenceAccelerator extends core.Schema<InferenceAcceleratorArgs> {
    deviceName: string | core.StringOut;
    deviceType: string | core.StringOut;
}
export interface PlacementConstraintsArgs extends core.SchemaArgs {
    expression?: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class PlacementConstraints extends core.Schema<PlacementConstraintsArgs> {
    expression?: string | core.StringOut;
    type: string | core.StringOut;
}
export interface ProxyConfigurationArgs extends core.SchemaArgs {
    containerName: string | core.StringOut;
    properties?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type?: string | core.StringOut;
}
export declare class ProxyConfiguration extends core.Schema<ProxyConfigurationArgs> {
    containerName: string | core.StringOut;
    properties?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type?: string | core.StringOut;
}
export interface EphemeralStorageArgs extends core.SchemaArgs {
    sizeInGib: number | core.NumberOut;
}
export declare class EphemeralStorage extends core.Schema<EphemeralStorageArgs> {
    sizeInGib: number | core.NumberOut;
}
export interface DockerVolumeConfigurationArgs extends core.SchemaArgs {
    autoprovision?: boolean | core.BooleanOut;
    driver?: string | core.StringOut;
    driverOpts?: core.Map<string, string> | core.MapOut<core.StringOut>;
    labels?: core.Map<string, string> | core.MapOut<core.StringOut>;
    scope?: string | core.StringOut;
}
export declare class DockerVolumeConfiguration extends core.Schema<DockerVolumeConfigurationArgs> {
    autoprovision?: boolean | core.BooleanOut;
    driver?: string | core.StringOut;
    driverOpts?: core.Map<string, string> | core.MapOut<core.StringOut>;
    labels?: core.Map<string, string> | core.MapOut<core.StringOut>;
    scope?: string | core.StringOut;
}
export interface EfsVolumeConfigurationAuthorizationConfigArgs extends core.SchemaArgs {
    accessPointId?: string | core.StringOut;
    iam?: string | core.StringOut;
}
export declare class EfsVolumeConfigurationAuthorizationConfig extends core.Schema<EfsVolumeConfigurationAuthorizationConfigArgs> {
    accessPointId?: string | core.StringOut;
    iam?: string | core.StringOut;
}
export interface EfsVolumeConfigurationArgs extends core.SchemaArgs {
    authorizationConfig?: EfsVolumeConfigurationAuthorizationConfig;
    fileSystemId: string | core.StringOut;
    rootDirectory?: string | core.StringOut;
    transitEncryption?: string | core.StringOut;
    transitEncryptionPort?: number | core.NumberOut;
}
export declare class EfsVolumeConfiguration extends core.Schema<EfsVolumeConfigurationArgs> {
    authorizationConfig?: EfsVolumeConfigurationAuthorizationConfig;
    fileSystemId: string | core.StringOut;
    rootDirectory?: string | core.StringOut;
    transitEncryption?: string | core.StringOut;
    transitEncryptionPort?: number | core.NumberOut;
}
export interface FsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs extends core.SchemaArgs {
    credentialsParameter: string | core.StringOut;
    domain: string | core.StringOut;
}
export declare class FsxWindowsFileServerVolumeConfigurationAuthorizationConfig extends core.Schema<FsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs> {
    credentialsParameter: string | core.StringOut;
    domain: string | core.StringOut;
}
export interface FsxWindowsFileServerVolumeConfigurationArgs extends core.SchemaArgs {
    authorizationConfig: FsxWindowsFileServerVolumeConfigurationAuthorizationConfig;
    fileSystemId: string | core.StringOut;
    rootDirectory: string | core.StringOut;
}
export declare class FsxWindowsFileServerVolumeConfiguration extends core.Schema<FsxWindowsFileServerVolumeConfigurationArgs> {
    authorizationConfig: FsxWindowsFileServerVolumeConfigurationAuthorizationConfig;
    fileSystemId: string | core.StringOut;
    rootDirectory: string | core.StringOut;
}
export interface VolumeArgs extends core.SchemaArgs {
    dockerVolumeConfiguration?: DockerVolumeConfiguration;
    efsVolumeConfiguration?: EfsVolumeConfiguration;
    fsxWindowsFileServerVolumeConfiguration?: FsxWindowsFileServerVolumeConfiguration;
    hostPath?: string | core.StringOut;
    name: string | core.StringOut;
}
export declare class Volume extends core.Schema<VolumeArgs> {
    dockerVolumeConfiguration?: DockerVolumeConfiguration;
    efsVolumeConfiguration?: EfsVolumeConfiguration;
    fsxWindowsFileServerVolumeConfiguration?: FsxWindowsFileServerVolumeConfiguration;
    hostPath?: string | core.StringOut;
    name: string | core.StringOut;
}
export interface TaskDefinitionArgs extends core.ResourceArgs {
    containerDefinitions: string | core.StringOut;
    cpu?: string | core.StringOut;
    ephemeralStorage?: EphemeralStorage;
    executionRoleArn?: string | core.StringOut;
    family: string | core.StringOut;
    inferenceAccelerator?: core.Array<InferenceAccelerator> | core.ArrayOut<InferenceAccelerator>;
    ipcMode?: string | core.StringOut;
    memory?: string | core.StringOut;
    networkMode?: string | core.StringOut;
    pidMode?: string | core.StringOut;
    placementConstraints?: core.Array<PlacementConstraints> | core.ArrayOut<PlacementConstraints>;
    proxyConfiguration?: ProxyConfiguration;
    requiresCompatibilities?: core.Array<string> | core.ArrayOut<core.StringOut>;
    runtimePlatform?: RuntimePlatform;
    skipDestroy?: boolean | core.BooleanOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    taskRoleArn?: string | core.StringOut;
    volume?: core.Array<Volume> | core.ArrayOut<Volume>;
}
export declare class TaskDefinition extends core.Resource<TaskDefinitionArgs> {
    arn: string | core.StringOut;
    containerDefinitions: string | core.StringOut;
    cpu?: string | core.StringOut;
    ephemeralStorage?: EphemeralStorage;
    executionRoleArn?: string | core.StringOut;
    family: string | core.StringOut;
    id: string | core.StringOut;
    inferenceAccelerator?: core.Array<InferenceAccelerator> | core.ArrayOut<InferenceAccelerator>;
    ipcMode?: string | core.StringOut;
    memory?: string | core.StringOut;
    networkMode?: string | core.StringOut;
    pidMode?: string | core.StringOut;
    placementConstraints?: core.Array<PlacementConstraints> | core.ArrayOut<PlacementConstraints>;
    proxyConfiguration?: ProxyConfiguration;
    requiresCompatibilities?: core.Array<string> | core.ArrayOut<core.StringOut>;
    revision: number | core.NumberOut;
    runtimePlatform?: RuntimePlatform;
    skipDestroy?: boolean | core.BooleanOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    taskRoleArn?: string | core.StringOut;
    volume?: core.Array<Volume> | core.ArrayOut<Volume>;
    constructor(name: string, args?: TaskDefinitionArgs);
    getNamespace(): string;
}
//# sourceMappingURL=task_definition.d.ts.map