import * as core from "@terrascript/core";
export interface GeoRestrictionArgs extends core.SchemaArgs {
    locations?: core.Array<string> | core.ArrayOut<core.StringOut>;
    restrictionType: string | core.StringOut;
}
export declare class GeoRestriction extends core.Schema<GeoRestrictionArgs> {
    locations?: core.Array<string> | core.ArrayOut<core.StringOut>;
    restrictionType: string | core.StringOut;
}
export interface RestrictionsArgs extends core.SchemaArgs {
    geoRestriction: GeoRestriction;
}
export declare class Restrictions extends core.Schema<RestrictionsArgs> {
    geoRestriction: GeoRestriction;
}
export interface OriginShieldArgs extends core.SchemaArgs {
    enabled: boolean | core.BooleanOut;
    originShieldRegion: string | core.StringOut;
}
export declare class OriginShield extends core.Schema<OriginShieldArgs> {
    enabled: boolean | core.BooleanOut;
    originShieldRegion: string | core.StringOut;
}
export interface S3OriginConfigArgs extends core.SchemaArgs {
    originAccessIdentity: string | core.StringOut;
}
export declare class S3OriginConfig extends core.Schema<S3OriginConfigArgs> {
    originAccessIdentity: string | core.StringOut;
}
export interface CustomOriginConfigArgs extends core.SchemaArgs {
    httpPort: number | core.NumberOut;
    httpsPort: number | core.NumberOut;
    originKeepaliveTimeout?: number | core.NumberOut;
    originProtocolPolicy: string | core.StringOut;
    originReadTimeout?: number | core.NumberOut;
    originSslProtocols: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class CustomOriginConfig extends core.Schema<CustomOriginConfigArgs> {
    httpPort: number | core.NumberOut;
    httpsPort: number | core.NumberOut;
    originKeepaliveTimeout?: number | core.NumberOut;
    originProtocolPolicy: string | core.StringOut;
    originReadTimeout?: number | core.NumberOut;
    originSslProtocols: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface CustomHeaderArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class CustomHeader extends core.Schema<CustomHeaderArgs> {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export interface OriginArgs extends core.SchemaArgs {
    connectionAttempts?: number | core.NumberOut;
    connectionTimeout?: number | core.NumberOut;
    customHeader?: core.Array<CustomHeader> | core.ArrayOut<CustomHeader>;
    customOriginConfig?: CustomOriginConfig;
    domainName: string | core.StringOut;
    originId: string | core.StringOut;
    originPath?: string | core.StringOut;
    originShield?: OriginShield;
    s3OriginConfig?: S3OriginConfig;
}
export declare class Origin extends core.Schema<OriginArgs> {
    connectionAttempts?: number | core.NumberOut;
    connectionTimeout?: number | core.NumberOut;
    customHeader?: core.Array<CustomHeader> | core.ArrayOut<CustomHeader>;
    customOriginConfig?: CustomOriginConfig;
    domainName: string | core.StringOut;
    originId: string | core.StringOut;
    originPath?: string | core.StringOut;
    originShield?: OriginShield;
    s3OriginConfig?: S3OriginConfig;
}
export interface OrderedCacheBehaviorForwardedValuesCookiesArgs extends core.SchemaArgs {
    forward: string | core.StringOut;
    whitelistedNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class OrderedCacheBehaviorForwardedValuesCookies extends core.Schema<OrderedCacheBehaviorForwardedValuesCookiesArgs> {
    forward: string | core.StringOut;
    whitelistedNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface OrderedCacheBehaviorForwardedValuesArgs extends core.SchemaArgs {
    cookies: OrderedCacheBehaviorForwardedValuesCookies;
    headers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    queryString: boolean | core.BooleanOut;
    queryStringCacheKeys?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class OrderedCacheBehaviorForwardedValues extends core.Schema<OrderedCacheBehaviorForwardedValuesArgs> {
    cookies: OrderedCacheBehaviorForwardedValuesCookies;
    headers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    queryString: boolean | core.BooleanOut;
    queryStringCacheKeys?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface LambdaFunctionAssociationArgs extends core.SchemaArgs {
    eventType: string | core.StringOut;
    includeBody?: boolean | core.BooleanOut;
    lambdaArn: string | core.StringOut;
}
export declare class LambdaFunctionAssociation extends core.Schema<LambdaFunctionAssociationArgs> {
    eventType: string | core.StringOut;
    includeBody?: boolean | core.BooleanOut;
    lambdaArn: string | core.StringOut;
}
export interface FunctionAssociationArgs extends core.SchemaArgs {
    eventType: string | core.StringOut;
    functionArn: string | core.StringOut;
}
export declare class FunctionAssociation extends core.Schema<FunctionAssociationArgs> {
    eventType: string | core.StringOut;
    functionArn: string | core.StringOut;
}
export interface OrderedCacheBehaviorArgs extends core.SchemaArgs {
    allowedMethods: core.Array<string> | core.ArrayOut<core.StringOut>;
    cachePolicyId?: string | core.StringOut;
    cachedMethods: core.Array<string> | core.ArrayOut<core.StringOut>;
    compress?: boolean | core.BooleanOut;
    defaultTtl?: number | core.NumberOut;
    fieldLevelEncryptionId?: string | core.StringOut;
    forwardedValues?: OrderedCacheBehaviorForwardedValues;
    functionAssociation?: core.Array<FunctionAssociation> | core.ArrayOut<FunctionAssociation>;
    lambdaFunctionAssociation?: core.Array<LambdaFunctionAssociation> | core.ArrayOut<LambdaFunctionAssociation>;
    maxTtl?: number | core.NumberOut;
    minTtl?: number | core.NumberOut;
    originRequestPolicyId?: string | core.StringOut;
    pathPattern: string | core.StringOut;
    realtimeLogConfigArn?: string | core.StringOut;
    responseHeadersPolicyId?: string | core.StringOut;
    smoothStreaming?: boolean | core.BooleanOut;
    targetOriginId: string | core.StringOut;
    trustedKeyGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    trustedSigners?: core.Array<string> | core.ArrayOut<core.StringOut>;
    viewerProtocolPolicy: string | core.StringOut;
}
export declare class OrderedCacheBehavior extends core.Schema<OrderedCacheBehaviorArgs> {
    allowedMethods: core.Array<string> | core.ArrayOut<core.StringOut>;
    cachePolicyId?: string | core.StringOut;
    cachedMethods: core.Array<string> | core.ArrayOut<core.StringOut>;
    compress?: boolean | core.BooleanOut;
    defaultTtl?: number | core.NumberOut;
    fieldLevelEncryptionId?: string | core.StringOut;
    forwardedValues?: OrderedCacheBehaviorForwardedValues;
    functionAssociation?: core.Array<FunctionAssociation> | core.ArrayOut<FunctionAssociation>;
    lambdaFunctionAssociation?: core.Array<LambdaFunctionAssociation> | core.ArrayOut<LambdaFunctionAssociation>;
    maxTtl?: number | core.NumberOut;
    minTtl?: number | core.NumberOut;
    originRequestPolicyId?: string | core.StringOut;
    pathPattern: string | core.StringOut;
    realtimeLogConfigArn?: string | core.StringOut;
    responseHeadersPolicyId?: string | core.StringOut;
    smoothStreaming?: boolean | core.BooleanOut;
    targetOriginId: string | core.StringOut;
    trustedKeyGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    trustedSigners?: core.Array<string> | core.ArrayOut<core.StringOut>;
    viewerProtocolPolicy: string | core.StringOut;
}
export interface CustomErrorResponseArgs extends core.SchemaArgs {
    errorCachingMinTtl?: number | core.NumberOut;
    errorCode: number | core.NumberOut;
    responseCode?: number | core.NumberOut;
    responsePagePath?: string | core.StringOut;
}
export declare class CustomErrorResponse extends core.Schema<CustomErrorResponseArgs> {
    errorCachingMinTtl?: number | core.NumberOut;
    errorCode: number | core.NumberOut;
    responseCode?: number | core.NumberOut;
    responsePagePath?: string | core.StringOut;
}
export interface TrustedKeyGroupsItemsArgs extends core.SchemaArgs {
    keyGroupId: string | core.StringOut;
    keyPairIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class TrustedKeyGroupsItems extends core.Schema<TrustedKeyGroupsItemsArgs> {
    keyGroupId: string | core.StringOut;
    keyPairIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface TrustedKeyGroupsArgs extends core.SchemaArgs {
    enabled: boolean | core.BooleanOut;
    items: core.Array<TrustedKeyGroupsItems> | core.ArrayOut<TrustedKeyGroupsItems>;
}
export declare class TrustedKeyGroups extends core.Schema<TrustedKeyGroupsArgs> {
    enabled: boolean | core.BooleanOut;
    items: core.Array<TrustedKeyGroupsItems> | core.ArrayOut<TrustedKeyGroupsItems>;
}
export interface FailoverCriteriaArgs extends core.SchemaArgs {
    statusCodes: core.Array<number> | core.ArrayOut<core.NumberOut>;
}
export declare class FailoverCriteria extends core.Schema<FailoverCriteriaArgs> {
    statusCodes: core.Array<number> | core.ArrayOut<core.NumberOut>;
}
export interface MemberArgs extends core.SchemaArgs {
    originId: string | core.StringOut;
}
export declare class Member extends core.Schema<MemberArgs> {
    originId: string | core.StringOut;
}
export interface OriginGroupArgs extends core.SchemaArgs {
    failoverCriteria: FailoverCriteria;
    member: core.Array<Member> | core.ArrayOut<Member>;
    originId: string | core.StringOut;
}
export declare class OriginGroup extends core.Schema<OriginGroupArgs> {
    failoverCriteria: FailoverCriteria;
    member: core.Array<Member> | core.ArrayOut<Member>;
    originId: string | core.StringOut;
}
export interface TrustedSignersItemsArgs extends core.SchemaArgs {
    awsAccountNumber: string | core.StringOut;
    keyPairIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class TrustedSignersItems extends core.Schema<TrustedSignersItemsArgs> {
    awsAccountNumber: string | core.StringOut;
    keyPairIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface TrustedSignersArgs extends core.SchemaArgs {
    enabled: boolean | core.BooleanOut;
    items: core.Array<TrustedSignersItems> | core.ArrayOut<TrustedSignersItems>;
}
export declare class TrustedSigners extends core.Schema<TrustedSignersArgs> {
    enabled: boolean | core.BooleanOut;
    items: core.Array<TrustedSignersItems> | core.ArrayOut<TrustedSignersItems>;
}
export interface DefaultCacheBehaviorForwardedValuesCookiesArgs extends core.SchemaArgs {
    forward: string | core.StringOut;
    whitelistedNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class DefaultCacheBehaviorForwardedValuesCookies extends core.Schema<DefaultCacheBehaviorForwardedValuesCookiesArgs> {
    forward: string | core.StringOut;
    whitelistedNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface DefaultCacheBehaviorForwardedValuesArgs extends core.SchemaArgs {
    cookies: DefaultCacheBehaviorForwardedValuesCookies;
    headers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    queryString: boolean | core.BooleanOut;
    queryStringCacheKeys?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class DefaultCacheBehaviorForwardedValues extends core.Schema<DefaultCacheBehaviorForwardedValuesArgs> {
    cookies: DefaultCacheBehaviorForwardedValuesCookies;
    headers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    queryString: boolean | core.BooleanOut;
    queryStringCacheKeys?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface DefaultCacheBehaviorArgs extends core.SchemaArgs {
    allowedMethods: core.Array<string> | core.ArrayOut<core.StringOut>;
    cachePolicyId?: string | core.StringOut;
    cachedMethods: core.Array<string> | core.ArrayOut<core.StringOut>;
    compress?: boolean | core.BooleanOut;
    defaultTtl?: number | core.NumberOut;
    fieldLevelEncryptionId?: string | core.StringOut;
    forwardedValues?: DefaultCacheBehaviorForwardedValues;
    functionAssociation?: core.Array<FunctionAssociation> | core.ArrayOut<FunctionAssociation>;
    lambdaFunctionAssociation?: core.Array<LambdaFunctionAssociation> | core.ArrayOut<LambdaFunctionAssociation>;
    maxTtl?: number | core.NumberOut;
    minTtl?: number | core.NumberOut;
    originRequestPolicyId?: string | core.StringOut;
    realtimeLogConfigArn?: string | core.StringOut;
    responseHeadersPolicyId?: string | core.StringOut;
    smoothStreaming?: boolean | core.BooleanOut;
    targetOriginId: string | core.StringOut;
    trustedKeyGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    trustedSigners?: core.Array<string> | core.ArrayOut<core.StringOut>;
    viewerProtocolPolicy: string | core.StringOut;
}
export declare class DefaultCacheBehavior extends core.Schema<DefaultCacheBehaviorArgs> {
    allowedMethods: core.Array<string> | core.ArrayOut<core.StringOut>;
    cachePolicyId?: string | core.StringOut;
    cachedMethods: core.Array<string> | core.ArrayOut<core.StringOut>;
    compress?: boolean | core.BooleanOut;
    defaultTtl?: number | core.NumberOut;
    fieldLevelEncryptionId?: string | core.StringOut;
    forwardedValues?: DefaultCacheBehaviorForwardedValues;
    functionAssociation?: core.Array<FunctionAssociation> | core.ArrayOut<FunctionAssociation>;
    lambdaFunctionAssociation?: core.Array<LambdaFunctionAssociation> | core.ArrayOut<LambdaFunctionAssociation>;
    maxTtl?: number | core.NumberOut;
    minTtl?: number | core.NumberOut;
    originRequestPolicyId?: string | core.StringOut;
    realtimeLogConfigArn?: string | core.StringOut;
    responseHeadersPolicyId?: string | core.StringOut;
    smoothStreaming?: boolean | core.BooleanOut;
    targetOriginId: string | core.StringOut;
    trustedKeyGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    trustedSigners?: core.Array<string> | core.ArrayOut<core.StringOut>;
    viewerProtocolPolicy: string | core.StringOut;
}
export interface ViewerCertificateArgs extends core.SchemaArgs {
    acmCertificateArn?: string | core.StringOut;
    cloudfrontDefaultCertificate?: boolean | core.BooleanOut;
    iamCertificateId?: string | core.StringOut;
    minimumProtocolVersion?: string | core.StringOut;
    sslSupportMethod?: string | core.StringOut;
}
export declare class ViewerCertificate extends core.Schema<ViewerCertificateArgs> {
    acmCertificateArn?: string | core.StringOut;
    cloudfrontDefaultCertificate?: boolean | core.BooleanOut;
    iamCertificateId?: string | core.StringOut;
    minimumProtocolVersion?: string | core.StringOut;
    sslSupportMethod?: string | core.StringOut;
}
export interface LoggingConfigArgs extends core.SchemaArgs {
    bucket: string | core.StringOut;
    includeCookies?: boolean | core.BooleanOut;
    prefix?: string | core.StringOut;
}
export declare class LoggingConfig extends core.Schema<LoggingConfigArgs> {
    bucket: string | core.StringOut;
    includeCookies?: boolean | core.BooleanOut;
    prefix?: string | core.StringOut;
}
export interface DistributionArgs extends core.ResourceArgs {
    aliases?: core.Array<string> | core.ArrayOut<core.StringOut>;
    comment?: string | core.StringOut;
    customErrorResponse?: core.Array<CustomErrorResponse> | core.ArrayOut<CustomErrorResponse>;
    defaultCacheBehavior: DefaultCacheBehavior;
    defaultRootObject?: string | core.StringOut;
    enabled: boolean | core.BooleanOut;
    httpVersion?: string | core.StringOut;
    isIpv6Enabled?: boolean | core.BooleanOut;
    loggingConfig?: LoggingConfig;
    orderedCacheBehavior?: core.Array<OrderedCacheBehavior> | core.ArrayOut<OrderedCacheBehavior>;
    origin: core.Array<Origin> | core.ArrayOut<Origin>;
    originGroup?: core.Array<OriginGroup> | core.ArrayOut<OriginGroup>;
    priceClass?: string | core.StringOut;
    restrictions: Restrictions;
    retainOnDelete?: boolean | core.BooleanOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    viewerCertificate: ViewerCertificate;
    waitForDeployment?: boolean | core.BooleanOut;
    webAclId?: string | core.StringOut;
}
export declare class Distribution extends core.Resource<DistributionArgs> {
    aliases?: core.Array<string> | core.ArrayOut<core.StringOut>;
    arn: string | core.StringOut;
    callerReference: string | core.StringOut;
    comment?: string | core.StringOut;
    customErrorResponse?: core.Array<CustomErrorResponse> | core.ArrayOut<CustomErrorResponse>;
    defaultCacheBehavior: DefaultCacheBehavior;
    defaultRootObject?: string | core.StringOut;
    domainName: string | core.StringOut;
    enabled: boolean | core.BooleanOut;
    etag: string | core.StringOut;
    hostedZoneId: string | core.StringOut;
    httpVersion?: string | core.StringOut;
    id: string | core.StringOut;
    inProgressValidationBatches: number | core.NumberOut;
    isIpv6Enabled?: boolean | core.BooleanOut;
    lastModifiedTime: string | core.StringOut;
    loggingConfig?: LoggingConfig;
    orderedCacheBehavior?: core.Array<OrderedCacheBehavior> | core.ArrayOut<OrderedCacheBehavior>;
    origin: core.Array<Origin> | core.ArrayOut<Origin>;
    originGroup?: core.Array<OriginGroup> | core.ArrayOut<OriginGroup>;
    priceClass?: string | core.StringOut;
    restrictions: Restrictions;
    retainOnDelete?: boolean | core.BooleanOut;
    status: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    trustedKeyGroups: core.Array<TrustedKeyGroups> | core.ArrayOut<TrustedKeyGroups>;
    trustedSigners: core.Array<TrustedSigners> | core.ArrayOut<TrustedSigners>;
    viewerCertificate: ViewerCertificate;
    waitForDeployment?: boolean | core.BooleanOut;
    webAclId?: string | core.StringOut;
    constructor(name: string, args?: DistributionArgs);
    getNamespace(): string;
}
//# sourceMappingURL=distribution.d.ts.map