import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as awsx from "@pulumi/awsx";
import { RecursivePartial } from "../utils/deep-merge";
export interface FullstackServiceAWSArgs {
    cdnHostname?: pulumi.Input<string>;
    repositoryUrl?: pulumi.Input<string>;
    storage?: aws.s3.BucketV2;
    connectionStringSecret?: aws.secretsmanager.Secret;
    connectionStringEnvironmentVariableName?: pulumi.Input<string>;
    ecrRepository?: awsx.ecr.Repository | null;
    taskRole?: aws.iam.Role;
    executionRole?: aws.iam.Role;
    cluster?: aws.ecs.Cluster;
    vpc: awsx.ec2.Vpc;
    subnetIds?: pulumi.Input<string[]>;
    securityGroups?: aws.ec2.SecurityGroup[];
    imageArgs?: awsx.ecr.ImageArgs;
    serviceArgs?: awsx.ecs.FargateServiceArgs;
    loadBalancer?: awsx.lb.ApplicationLoadBalancer;
    taskDefinitionArgs?: RecursivePartial<awsx.ecs.FargateTaskDefinitionArgs>;
}
export declare const defaultFullstackServiceAWSArgs: FullstackServiceAWSArgs;
export declare class AppFargate extends pulumi.ComponentResource {
    _args: FullstackServiceAWSArgs;
    cluster: aws.ecs.Cluster;
    executionRole: aws.iam.Role;
    taskRole: aws.iam.Role;
    ecrRepository: awsx.ecr.Repository | null;
    image: awsx.ecr.Image;
    service: awsx.ecs.FargateService;
    securityGroupIds: (string | pulumi.Output<string>)[];
    taskDefinitionArgs: awsx.ecs.FargateTaskDefinitionArgs;
    constructor(name: string | undefined, args: FullstackServiceAWSArgs, opts?: pulumi.ComponentResourceOptions);
    getTaskDefinitionArgs(): awsx.ecs.FargateTaskDefinitionArgs;
    getSecurityGroups(): (string | pulumi.Output<string>)[];
    getService(): awsx.ecs.FargateService;
    getImage(): awsx.ecr.Image;
    getEcrRepository(): awsx.ecr.Repository | null;
    getTaskRole(): aws.iam.Role;
    getCluster(): aws.ecs.Cluster;
    getExecutionRole(): aws.iam.Role;
    getContainerName(): string;
}
