import * as cdk from "@aws-cdk/core"; import * as s3 from "@aws-cdk/aws-s3"; import * as acm from "@aws-cdk/aws-certificatemanager"; import * as route53 from "@aws-cdk/aws-route53"; import * as cf from "@aws-cdk/aws-cloudfront"; export declare enum StaticSiteErrorOptions { REDIRECT_TO_INDEX_PAGE = "REDIRECT_TO_INDEX_PAGE" } export interface StaticSiteProps { readonly path: string; readonly indexPage?: string; readonly errorPage?: string | StaticSiteErrorOptions; readonly buildCommand?: string; readonly buildOutput?: string; readonly fileOptions?: StaticSiteFileOption[]; readonly replaceValues?: StaticSiteReplaceProps[]; readonly customDomain?: string | StaticSiteDomainProps; readonly s3Bucket?: s3.BucketProps; readonly cfDistribution?: StaticSiteCdkDistributionProps; readonly _buildCommandEnvironment?: { [key: string]: string; }; } export interface StaticSiteDomainProps { readonly domainName: string; readonly domainAlias?: string; readonly hostedZone?: string | route53.IHostedZone; readonly certificate?: acm.ICertificate; } export interface StaticSiteFileOption { readonly exclude: string | string[]; readonly include: string | string[]; readonly cacheControl: string; } export interface StaticSiteReplaceProps { readonly files: string; readonly search: string; readonly replace: string; } export interface StaticSiteEnvironmentOutputsInfo { readonly path: string; readonly stack: string; readonly environmentOutputs: { [key: string]: string; }; } export interface StaticSiteCdkDistributionProps extends Omit { readonly defaultBehavior?: cf.AddBehaviorOptions; } export declare class StaticSite extends cdk.Construct { readonly s3Bucket: s3.Bucket; readonly cfDistribution: cf.Distribution; readonly hostedZone?: route53.IHostedZone; readonly acmCertificate?: acm.ICertificate; private readonly props; constructor(scope: cdk.Construct, id: string, props: StaticSiteProps); get url(): string; get customDomainUrl(): string | undefined; get bucketArn(): string; get bucketName(): string; get distributionId(): string; get distributionDomain(): string; private createS3Bucket; private createCustomResourceFunction; private buildApp; private lookupHostedZone; private createCertificate; private createCfDistribution; private createRoute53Records; private createS3Deployment; private buildErrorResponsesForRedirectToIndex; private buildErrorResponsesFor404ErrorPage; }