import { aws_route53 as route53, aws_certificatemanager as acm } from 'aws-cdk-lib'; import * as constructs from 'constructs'; /** * Properties for CloudFrontCertificate construct. */ export interface CloudFrontCertificateProps { /** Domain name for the certificate (e.g., 'example.com' or '*.example.com') */ readonly domainName: string; /** Route53 hosted zone for DNS validation */ readonly hostedZone: route53.IHostedZone; /** Optional subject alternative names */ readonly subjectAlternativeNames?: string[]; } /** * Creates an ACM certificate in us-east-1 for use with CloudFront. * * CloudFront requires certificates to be in us-east-1 region. * This construct uses a custom resource to create the certificate * in us-east-1 regardless of the stack's region. * * @example * ```typescript * const cert = new CloudFrontCertificate(this, 'Certificate', { * domainName: 'example.com', * hostedZone: zone, * subjectAlternativeNames: ['*.example.com'], * }); * * new cloudfront.Distribution(this, 'Distribution', { * certificate: cert.certificate, * domainNames: ['example.com'], * // ... * }); * ``` */ export declare class CloudFrontCertificate extends constructs.Construct { /** The ACM certificate in us-east-1 */ readonly certificate: acm.ICertificate; constructor(scope: constructs.Construct, id: string, props: CloudFrontCertificateProps); }