import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class LinuxParameters {
    Capabilities?: KernelCapabilities;
    Devices?: List<Device>;
    InitProcessEnabled?: Value<boolean>;
    MaxSwap?: Value<number>;
    SharedMemorySize?: Value<number>;
    Swappiness?: Value<number>;
    Tmpfs?: List<Tmpfs>;
    constructor(properties: LinuxParameters);
}
export declare class VolumeFrom {
    ReadOnly?: Value<boolean>;
    SourceContainer?: Value<string>;
    constructor(properties: VolumeFrom);
}
export declare class Ulimit {
    HardLimit: Value<number>;
    Name: Value<string>;
    SoftLimit: Value<number>;
    constructor(properties: Ulimit);
}
export declare class FirelensConfiguration {
    Options?: MapOf<Value<string>>;
    Type: Value<string>;
    constructor(properties: FirelensConfiguration);
}
export declare class Tmpfs {
    ContainerPath?: Value<string>;
    MountOptions?: List<Value<string>>;
    Size: Value<number>;
    constructor(properties: Tmpfs);
}
export declare class ProxyConfiguration {
    ContainerName: Value<string>;
    ProxyConfigurationProperties?: List<KeyValuePair>;
    Type?: Value<string>;
    constructor(properties: ProxyConfiguration);
}
export declare class KeyValuePair {
    Name?: Value<string>;
    Value?: Value<string>;
    constructor(properties: KeyValuePair);
}
export declare class HostEntry {
    Hostname: Value<string>;
    IpAddress: Value<string>;
    constructor(properties: HostEntry);
}
export declare class TaskDefinitionPlacementConstraint {
    Expression?: Value<string>;
    Type: Value<string>;
    constructor(properties: TaskDefinitionPlacementConstraint);
}
export declare class HealthCheck {
    Command: List<Value<string>>;
    Interval?: Value<number>;
    Retries?: Value<number>;
    StartPeriod?: Value<number>;
    Timeout?: Value<number>;
    constructor(properties: HealthCheck);
}
export declare class Secret {
    Name: Value<string>;
    ValueFrom: Value<string>;
    constructor(properties: Secret);
}
export declare class ContainerDependency {
    Condition: Value<string>;
    ContainerName: Value<string>;
    constructor(properties: ContainerDependency);
}
export declare class PortMapping {
    ContainerPort?: Value<number>;
    HostPort?: Value<number>;
    Protocol?: Value<string>;
    constructor(properties: PortMapping);
}
export declare class InferenceAccelerator {
    DeviceName?: Value<string>;
    DevicePolicy?: Value<string>;
    DeviceType?: Value<string>;
    constructor(properties: InferenceAccelerator);
}
export declare class SystemControl {
    Namespace: Value<string>;
    Value: Value<string>;
    constructor(properties: SystemControl);
}
export declare class LogConfiguration {
    LogDriver: Value<string>;
    Options?: MapOf<Value<string>>;
    SecretOptions?: List<Secret>;
    constructor(properties: LogConfiguration);
}
export declare class KernelCapabilities {
    Add?: List<Value<string>>;
    Drop?: List<Value<string>>;
    constructor(properties: KernelCapabilities);
}
export declare class HostVolumeProperties {
    SourcePath?: Value<string>;
    constructor(properties: HostVolumeProperties);
}
export declare class RepositoryCredentials {
    CredentialsParameter?: Value<string>;
    constructor(properties: RepositoryCredentials);
}
export declare class Device {
    ContainerPath?: Value<string>;
    HostPath: Value<string>;
    Permissions?: List<Value<string>>;
    constructor(properties: Device);
}
export declare class MountPoint {
    ContainerPath?: Value<string>;
    ReadOnly?: Value<boolean>;
    SourceVolume?: Value<string>;
    constructor(properties: MountPoint);
}
export declare class ContainerDefinition {
    Memory?: Value<number>;
    FirelensConfiguration?: FirelensConfiguration;
    Interactive?: Value<boolean>;
    Secrets?: List<Secret>;
    VolumesFrom?: List<VolumeFrom>;
    SystemControls?: List<SystemControl>;
    PortMappings?: List<PortMapping>;
    DependsOn?: List<ContainerDependency>;
    DnsServers?: List<Value<string>>;
    Cpu?: Value<number>;
    Name?: Value<string>;
    Command?: List<Value<string>>;
    User?: Value<string>;
    MemoryReservation?: Value<number>;
    HealthCheck?: HealthCheck;
    Ulimits?: List<Ulimit>;
    Essential?: Value<boolean>;
    ReadonlyRootFilesystem?: Value<boolean>;
    LogConfiguration?: LogConfiguration;
    RepositoryCredentials?: RepositoryCredentials;
    Hostname?: Value<string>;
    Environment?: List<KeyValuePair>;
    Privileged?: Value<boolean>;
    Links?: List<Value<string>>;
    PseudoTerminal?: Value<boolean>;
    Image?: Value<string>;
    ExtraHosts?: List<HostEntry>;
    MountPoints?: List<MountPoint>;
    WorkingDirectory?: Value<string>;
    DisableNetworking?: Value<boolean>;
    EntryPoint?: List<Value<string>>;
    DockerSecurityOptions?: List<Value<string>>;
    LinuxParameters?: LinuxParameters;
    DnsSearchDomains?: List<Value<string>>;
    ResourceRequirements?: List<ResourceRequirement>;
    DockerLabels?: MapOf<Value<string>>;
    StartTimeout?: Value<number>;
    StopTimeout?: Value<number>;
    constructor(properties: ContainerDefinition);
}
export declare class ResourceRequirement {
    Type: Value<string>;
    Value: Value<string>;
    constructor(properties: ResourceRequirement);
}
export declare class Volume {
    DockerVolumeConfiguration?: DockerVolumeConfiguration;
    Host?: HostVolumeProperties;
    Name?: Value<string>;
    constructor(properties: Volume);
}
export declare class DockerVolumeConfiguration {
    Autoprovision?: Value<boolean>;
    Driver?: Value<string>;
    DriverOpts?: MapOf<Value<string>>;
    Labels?: MapOf<Value<string>>;
    Scope?: Value<string>;
    constructor(properties: DockerVolumeConfiguration);
}
export interface TaskDefinitionProperties {
    RequiresCompatibilities?: List<Value<string>>;
    Memory?: Value<string>;
    InferenceAccelerators?: List<InferenceAccelerator>;
    TaskRoleArn?: Value<string>;
    Family?: Value<string>;
    ProxyConfiguration?: ProxyConfiguration;
    Cpu?: Value<string>;
    PidMode?: Value<string>;
    ExecutionRoleArn?: Value<string>;
    NetworkMode?: Value<string>;
    PlacementConstraints?: List<TaskDefinitionPlacementConstraint>;
    Tags?: List<Inner_ResourceTag>;
    Volumes?: List<Volume>;
    ContainerDefinitions?: List<ContainerDefinition>;
    IpcMode?: Value<string>;
}
export default class Inner_TaskDefinition extends ResourceBase<TaskDefinitionProperties> {
    static LinuxParameters: typeof LinuxParameters;
    static VolumeFrom: typeof VolumeFrom;
    static Ulimit: typeof Ulimit;
    static FirelensConfiguration: typeof FirelensConfiguration;
    static Tmpfs: typeof Tmpfs;
    static ProxyConfiguration: typeof ProxyConfiguration;
    static KeyValuePair: typeof KeyValuePair;
    static HostEntry: typeof HostEntry;
    static TaskDefinitionPlacementConstraint: typeof TaskDefinitionPlacementConstraint;
    static HealthCheck: typeof HealthCheck;
    static Secret: typeof Secret;
    static ContainerDependency: typeof ContainerDependency;
    static PortMapping: typeof PortMapping;
    static InferenceAccelerator: typeof InferenceAccelerator;
    static SystemControl: typeof SystemControl;
    static LogConfiguration: typeof LogConfiguration;
    static KernelCapabilities: typeof KernelCapabilities;
    static HostVolumeProperties: typeof HostVolumeProperties;
    static RepositoryCredentials: typeof RepositoryCredentials;
    static Device: typeof Device;
    static MountPoint: typeof MountPoint;
    static ContainerDefinition: typeof ContainerDefinition;
    static ResourceRequirement: typeof ResourceRequirement;
    static Volume: typeof Volume;
    static DockerVolumeConfiguration: typeof DockerVolumeConfiguration;
    constructor(properties: TaskDefinitionProperties);
}
