import type { Construct } from 'constructs';
import type * as ec2 from '../../../aws-ec2';
import type { HealthCheck } from '../../../aws-ecs';
import { FargateService, FargateTaskDefinition } from '../../../aws-ecs';
import type { Duration } from '../../../core';
import type { FargateServiceBaseProps } from '../base/fargate-service-base';
import type { QueueProcessingServiceBaseProps } from '../base/queue-processing-service-base';
import { QueueProcessingServiceBase } from '../base/queue-processing-service-base';
/**
 * The properties for the QueueProcessingFargateService service.
 */
export interface QueueProcessingFargateServiceProps extends QueueProcessingServiceBaseProps, FargateServiceBaseProps {
    /**
     * Optional name for the container added.
     * This name is not used when `taskDefinition` is provided.
     *
     * @default - QueueProcessingContainer
     */
    readonly containerName?: string;
    /**
     * The health check command and associated configuration parameters for the container.
     *
     * @default - Health check configuration from container.
     */
    readonly healthCheck?: HealthCheck;
    /**
     * The subnets to associate with the service.
     *
     * @default - Public subnets if `assignPublicIp` is set, otherwise the first available one of Private, Isolated, Public, in that order.
     */
    readonly taskSubnets?: ec2.SubnetSelection;
    /**
     * The security groups to associate with the service. If you do not specify a security group, a new security group is created.
     *
     * @default - A new security group is created.
     */
    readonly securityGroups?: ec2.ISecurityGroup[];
    /**
     * Specifies whether the task's elastic network interface receives a public IP address.
     *
     * If true, each task will receive a public IP address.
     *
     * @default false
     */
    readonly assignPublicIp?: boolean;
    /**
     * The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy
     * Elastic Load Balancing target health checks after a task has first started.
     *
     * @default - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
     */
    readonly healthCheckGracePeriod?: Duration;
}
/**
 * Class to create a queue processing Fargate service
 */
export declare class QueueProcessingFargateService extends QueueProcessingServiceBase {
    /**
     * The Fargate service in this construct.
     */
    readonly service: FargateService;
    /**
     * The Fargate task definition in this construct.
     */
    readonly taskDefinition: FargateTaskDefinition;
    /**
     * Constructs a new instance of the QueueProcessingFargateService class.
     */
    constructor(scope: Construct, id: string, props?: QueueProcessingFargateServiceProps);
}
