import type { NaturalNumber } from "../../../common/CustomTypes/Numerics";
import type { Arn } from "../../Arn";
import type { AwsResourceCommon, CloudFormationTags } from "../common";
import type { CloudFormationValue } from "../IntrinsicFunctions";
import type { ContainerDefinition, LaunchType } from "./common";
export declare type TaskDefinitionType = 'AWS::ECS::TaskDefinition';
export interface TaskDefinition extends AwsResourceCommon {
    Type: TaskDefinitionType;
    Properties: TaskDefinitionProperties;
}
export interface TaskDefinitionProperties {
    ContainerDefinitions?: ContainerDefinition[];
    Cpu?: string;
    EphemeralStorage?: {
        SizeInGiB: NaturalNumber;
    };
    ExecutionRoleArn?: CloudFormationValue<Arn>;
    Family?: string;
    InferenceAccelerators?: object[];
    IpcMode?: IpcMode;
    Memory?: string;
    NetworkMode?: NetworkMode;
    PidMode?: IpcMode;
    PlacementConstraints?: object[];
    ProxyConfiguration?: object;
    RequiresCompatibilities?: LaunchType[];
    Tags?: CloudFormationTags;
    TaskRoleArn?: CloudFormationValue;
    Volumes?: object[];
}
export declare type IpcMode = 'host' | 'none' | 'task';
export declare type NetworkMode = 'awsvpc' | 'bridge' | 'host' | 'none';
