import type { Construct } from 'constructs';
import type { IEcsContainerDefinition } from './ecs-container-definition';
import type { IJobDefinition, JobDefinitionProps } from './job-definition-base';
import { JobDefinitionBase } from './job-definition-base';
import * as iam from '../../aws-iam';
import type { IJobQueueRef } from '../../interfaces/generated/aws-batch-interfaces.generated';
/**
 * A JobDefinition that uses ECS orchestration
 */
interface IEcsJobDefinition extends IJobDefinition {
    /**
     * The container that this job will run
     */
    readonly container: IEcsContainerDefinition;
    /**
     * Whether to propagate tags from the JobDefinition
     * to the ECS task that Batch spawns
     *
     * @default false
     */
    readonly propagateTags?: boolean;
}
/**
 * @internal
 */
export declare enum Compatibility {
    EC2 = "EC2",
    FARGATE = "FARGATE"
}
/**
 * Props for EcsJobDefinition
 */
export interface EcsJobDefinitionProps extends JobDefinitionProps {
    /**
     * The container that this job will run
     */
    readonly container: IEcsContainerDefinition;
    /**
     * Whether to propagate tags from the JobDefinition
     * to the ECS task that Batch spawns
     *
     * @default false
     */
    readonly propagateTags?: boolean;
}
/**
 * A JobDefinition that uses ECS orchestration
 *
 * @resource AWS::Batch::JobDefinition
 */
export declare class EcsJobDefinition extends JobDefinitionBase implements IEcsJobDefinition {
    /** Uniquely identifies this class. */
    static readonly PROPERTY_INJECTION_ID: string;
    /**
     * Import a JobDefinition by its arn.
     */
    static fromJobDefinitionArn(scope: Construct, id: string, jobDefinitionArn: string): IJobDefinition;
    private static getJobDefinitionName;
    readonly container: IEcsContainerDefinition;
    readonly propagateTags?: boolean;
    private readonly resource;
    get jobDefinitionArn(): string;
    get jobDefinitionName(): string;
    constructor(scope: Construct, id: string, props: EcsJobDefinitionProps);
    /**
     * Grants the `batch:submitJob` permission to the identity on both this job definition and the `queue`
     *
     * [disable-awslint:no-grants]
     */
    grantSubmitJob(identity: iam.IGrantable, queue: IJobQueueRef): void;
    private renderPlatformCapabilities;
}
export {};
