import * as ecs from "aws-cdk-lib/aws-ecs";
import { ApplicationLoadBalancedEc2Service, ApplicationLoadBalancedEc2ServiceProps } from "aws-cdk-lib/aws-ecs-patterns";
import { Construct } from "constructs";
import { INeuronxInstanceType } from "../neuronx";
import { NeuronxCompiledModel } from "../neuronx-compiler";
export interface NeuronxTaskDefinitionPropsBase extends ecs.Ec2TaskDefinitionProps {
    /**
     * The instance type of compile worker instance.
     */
    readonly neuronxInstanceType?: INeuronxInstanceType;
    /**
     * The number of tensor parallel size.
     * @default - 1
     */
    readonly tensorParallelSize?: number;
}
export interface NeuronxTaskDefinitionProps extends NeuronxTaskDefinitionPropsBase {
    /**
     * The model to be compiled.
     */
    readonly compiledModel: NeuronxCompiledModel;
}
export interface INeuronxTaskDefinition extends ecs.IEc2TaskDefinition {
    readonly neuronxInstanceType: INeuronxInstanceType;
    readonly tensorParallelSize: number;
    readonly tasksPerInstance: number;
    readonly compiledModel: NeuronxCompiledModel;
}
export declare class NeuronxTaskDefinition extends ecs.Ec2TaskDefinition implements INeuronxTaskDefinition {
    readonly neuronxInstanceType: INeuronxInstanceType;
    readonly tensorParallelSize: number;
    readonly tasksPerInstance: number;
    readonly compiledModel: NeuronxCompiledModel;
    protected readonly linuxParameters: ecs.LinuxParameters;
    constructor(scope: Construct, id: string, props: NeuronxTaskDefinitionProps);
    addContainerWithDefault(id: string, props: ecs.ContainerDefinitionOptions): ecs.ContainerDefinition;
}
export interface ApplicationLoadBalancedNeuronxServiceProps extends ApplicationLoadBalancedEc2ServiceProps {
}
export declare class ApplicationLoadBalancedNeuronxService extends ApplicationLoadBalancedEc2Service {
    constructor(scope: Construct, id: string, props: ApplicationLoadBalancedNeuronxServiceProps);
}
