import { Duration, RemovalPolicy, ResourceEnvironment, Stack } from "aws-cdk-lib";
import * as batch from "aws-cdk-lib/aws-batch";
import { IGrantable } from "aws-cdk-lib/aws-iam";
import { Construct } from "constructs";
import { INeuronxInstanceType } from "../neuronx";
/**
 * Props of NeuronxBatch.
 */
export interface NeuronxBatchEcsJobDefinitionProps extends batch.EcsEc2ContainerDefinitionProps, batch.JobDefinitionProps {
    readonly neuronxInstanceType: INeuronxInstanceType;
}
/**
 * Neuronx batch construct.
 */
export declare class NeuronxBatchEcsJobDefinition extends Construct implements batch.IJobDefinition {
    readonly jobDefinitionArn: string;
    readonly jobDefinitionName: string;
    readonly parameters?: {
        [key: string]: any;
    };
    readonly retryAttempts?: number;
    readonly retryStrategies: batch.RetryStrategy[];
    readonly schedulingPriority?: number;
    readonly timeout?: Duration;
    readonly stack: Stack;
    readonly env: ResourceEnvironment;
    get jobDefinitionRef(): batch.JobDefinitionReference;
    private readonly resource;
    constructor(scope: Construct, id: string, props: NeuronxBatchEcsJobDefinitionProps);
    applyRemovalPolicy(policy: RemovalPolicy): void;
    addRetryStrategy(strategy: batch.RetryStrategy): void;
    /**
     * Grants the `batch:submitJob` permission to the identity on both this job definition and the `queue`
     */
    grantSubmitJob(identity: IGrantable, queue: batch.IJobQueue): void;
}
