import { DistributionProperties, Distribution } from '../../aws/cloudfront/Distribution';
import { RecordSet } from '../../aws/route53/RecordSet';
import { Bucket } from "../../aws/s3/Bucket";
import { BucketPolicy } from "../../aws/s3/BucketPolicy";
import { AWSResourcesFor } from "../aws";
import { Value } from "../Value";
export type WebsiteExpects = AWSResourcesFor<'s3' | 'cloudfront' | 'route53'>;
export declare class Website {
    private aws;
    bucket: Bucket;
    bucketPolicy: BucketPolicy;
    distribution?: Distribution | undefined;
    aRecord?: RecordSet | undefined;
    private constructor();
    withARecord(domain: Value<string>, hostedZoneId: Value<string>): this;
    withDistribution(originId: Value<string>, certificateArn: Value<string>, aliases: Value<Value<string>[]>, rootObject?: Value<string>, httpVersion?: DistributionProperties['distributionConfig']['httpVersion'], edgeLambdaArn?: Value<string>): this;
    static create(aws: WebsiteExpects, bucketName: Value<string>, indexDocument?: Value<string>, errorDocument?: Value<string>): Website;
}
