import * as pulumi from '@pulumi/pulumi';
import * as aws from '@pulumi/aws';
import { CacheRuleTtl } from './cache-rule-ttl';
import { S3Assets } from './s3-assets';
import { CloudFront } from '../cloudfront';
export declare namespace StaticSite {
    type CacheRule = {
        pathPattern: string;
        /**
         * The TTL to for the path pattern.
         * Available predefined options are:
         * - `default` (fallback to defaults for CloudFront S3 behavior)
         * - `off` (0 second)
         * - `minute` (60 seconds)
         * - `hour` (3600 seconds)
         * - `day` (86400 seconds)
         * - `week` (604800 seconds)
         * - `month` (2592000 seconds)
         */
        ttl: CacheRuleTtl;
    };
    type Args = {
        domain?: pulumi.Input<string>;
        certificate?: pulumi.Input<aws.acm.Certificate>;
        hostedZoneId: pulumi.Input<string>;
        bucketPrefix?: pulumi.Input<string>;
        indexDocument?: pulumi.Input<string>;
        errorDocument?: pulumi.Input<string>;
        /**
         * Caching to enforce for S3 assets. Combined with S3 bucket translates
         * into CloudFront behaviors.
         * The default cache rule, i.e. path pattern `*` or `/*`, must always be last.
         * @see CloudFront.Args.behaviors
         */
        cacheRules?: CacheRule[];
        tags?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
    };
}
export declare class StaticSite extends pulumi.ComponentResource {
    name: string;
    s3Assets: S3Assets;
    cf: CloudFront;
    constructor(name: string, args: StaticSite.Args, opts?: pulumi.ComponentResourceOptions);
    private getCloudFrontBehaviors;
}
//# sourceMappingURL=index.d.ts.map