import { Distribution } from "aws-cdk-lib/aws-cloudfront"; import { ICluster } from "aws-cdk-lib/aws-ecs"; import { IApplicationLoadBalancer } from "aws-cdk-lib/aws-elasticloadbalancingv2"; import { Construct } from "constructs"; import { OptionalNextjsContainersProps } from "../generated-structs/OptionalNextjsContainersProps"; import { OptionalNextjsDistributionProps } from "../generated-structs/OptionalNextjsDistributionProps"; import { OptionalNextjsPostDeployProps } from "../generated-structs/OptionalNextjsPostDeployProps"; import { NextjsContainers, NextjsContainersOverrides } from "../nextjs-compute/nextjs-containers"; import { NextjsDistribution, NextjsDistributionOverrides } from "../nextjs-distribution"; import { NextjsPostDeploy, NextjsPostDeployOverrides } from "../nextjs-post-deploy"; import { NextjsBaseConstructOverrides, NextjsBaseOverrides, NextjsBaseConstruct, NextjsBaseProps } from "./nextjs-base-construct"; export interface NextjsGlobalContainersConstructOverrides extends NextjsBaseConstructOverrides { readonly nextjsContainersProps?: OptionalNextjsContainersProps; readonly nextjsDistributionProps?: OptionalNextjsDistributionProps; readonly nextjsPostDeployProps?: OptionalNextjsPostDeployProps; } /** * Overrides for `NextjsGlobalContainers`. Overrides are lower level than * props and are passed directly to CDK Constructs giving you more control. It's * recommended to use caution and review source code so you know how they're used. */ export interface NextjsGlobalContainersOverrides extends NextjsBaseOverrides { readonly nextjsGlobalContainers?: NextjsGlobalContainersConstructOverrides; readonly nextjsContainers?: NextjsContainersOverrides; readonly nextjsDistribution?: NextjsDistributionOverrides; readonly nextjsPostDeploy?: NextjsPostDeployOverrides; } export interface NextjsGlobalContainersProps extends NextjsBaseProps { /** * Bring your own Application Load Balancer. When provided, it is passed * directly to `ApplicationLoadBalancedFargateService`. If the ALB already * has a listener on port 80, call `removeAutoCreatedListener()` after * construction to avoid deployment failures. */ readonly alb?: IApplicationLoadBalancer; /** * Bring your own distribution. Can be used with `basePath` to host multiple * apps on the same CloudFront distribution. */ readonly distribution?: Distribution; /** * Bring your own ECS cluster. When provided, cdk-nextjs will skip creating * a new cluster and VPC gateway endpoints. */ readonly ecsCluster?: ICluster; /** * Override props of any construct. */ readonly overrides?: NextjsGlobalContainersOverrides; } /** * Deploy Next.js globally distributed with containers. Uses [CloudFront * Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html) * as Content Delivery Network (CDN) for global distribution and [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) * for containers. */ export declare class NextjsGlobalContainers extends NextjsBaseConstruct { nextjsContainers: NextjsContainers; nextjsDistribution: NextjsDistribution; nextjsPostDeploy: NextjsPostDeploy; get url(): string; private props; constructor(scope: Construct, id: string, props: NextjsGlobalContainersProps); private createNextjsContainers; private createNextjsDistribution; private createNextjsPostDeploy; }