import { Construct } from 'constructs';
import { CommonTaskDefinitionAttributes, CommonTaskDefinitionProps, ITaskDefinition, NetworkMode, TaskDefinition } from '../base/task-definition';
/**
 * (experimental) The properties for a task definition.
 *
 * @experimental
 */
export interface FargateTaskDefinitionProps extends CommonTaskDefinitionProps {
    /**
     * (experimental) The number of cpu units used by the task.
     *
     * For tasks using the Fargate launch type,
     * this field is required and you must use one of the following values,
     * which determines your range of valid values for the memory parameter:
     *
     * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
     *
     * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
     *
     * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
     *
     * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)
     *
     * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
     *
     * @default 256
     * @experimental
     */
    readonly cpu?: number;
    /**
     * (experimental) The amount (in MiB) of memory used by the task.
     *
     * For tasks using the Fargate launch type,
     * this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter:
     *
     * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
     *
     * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
     *
     * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
     *
     * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
     *
     * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)
     *
     * @default 512
     * @experimental
     */
    readonly memoryLimitMiB?: number;
}
/**
 * (experimental) The interface of a task definition run on a Fargate cluster.
 *
 * @experimental
 */
export interface IFargateTaskDefinition extends ITaskDefinition {
}
/**
 * (experimental) Attributes used to import an existing Fargate task definition.
 *
 * @experimental
 */
export interface FargateTaskDefinitionAttributes extends CommonTaskDefinitionAttributes {
}
/**
 * (experimental) The details of a task definition run on a Fargate cluster.
 *
 * @experimental
 * @resource AWS::ECS::TaskDefinition
 */
export declare class FargateTaskDefinition extends TaskDefinition implements IFargateTaskDefinition {
    /**
     * (experimental) Imports a task definition from the specified task definition ARN.
     *
     * @experimental
     */
    static fromFargateTaskDefinitionArn(scope: Construct, id: string, fargateTaskDefinitionArn: string): IFargateTaskDefinition;
    /**
     * (experimental) Import an existing Fargate task definition from its attributes.
     *
     * @experimental
     */
    static fromFargateTaskDefinitionAttributes(scope: Construct, id: string, attrs: FargateTaskDefinitionAttributes): IFargateTaskDefinition;
    /**
     * (experimental) The Docker networking mode to use for the containers in the task.
     *
     * Fargate tasks require the awsvpc network mode.
     *
     * @experimental
     */
    readonly networkMode: NetworkMode;
    /**
     * (experimental) Constructs a new instance of the FargateTaskDefinition class.
     *
     * @experimental
     */
    constructor(scope: Construct, id: string, props?: FargateTaskDefinitionProps);
}
