import cdk = require('@aws-cdk/cdk');
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html
     */
    interface DestinationResourceProps {
        /**
         * ``AWS::Logs::Destination.DestinationName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationname
         */
        destinationName: string | cdk.Token;
        /**
         * ``AWS::Logs::Destination.DestinationPolicy``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationpolicy
         */
        destinationPolicy: string | cdk.Token;
        /**
         * ``AWS::Logs::Destination.RoleArn``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-rolearn
         */
        roleArn: string | cdk.Token;
        /**
         * ``AWS::Logs::Destination.TargetArn``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-targetarn
         */
        targetArn: string | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html
     */
    class DestinationResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * @cloudformation_attribute Arn
         */
        readonly destinationArn: DestinationArn;
        /**
         * Creates a new ``AWS::Logs::Destination``.
         *
         * @param parent     the ``cdk.Construct`` this ``DestinationResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``DestinationResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: DestinationResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
}
export declare class DestinationArn extends cdk.Arn {
}
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html
     */
    interface LogGroupResourceProps {
        /**
         * ``AWS::Logs::LogGroup.LogGroupName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-loggroupname
         */
        logGroupName?: string | cdk.Token;
        /**
         * ``AWS::Logs::LogGroup.RetentionInDays``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-retentionindays
         */
        retentionInDays?: number | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html
     */
    class LogGroupResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * @cloudformation_attribute Arn
         */
        readonly logGroupArn: LogGroupArn;
        /**
         * Creates a new ``AWS::Logs::LogGroup``.
         *
         * @param parent     the ``cdk.Construct`` this ``LogGroupResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``LogGroupResource``
         */
        constructor(parent: cdk.Construct, name: string, properties?: LogGroupResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
}
export declare class LogGroupArn extends cdk.Arn {
}
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html
     */
    interface LogStreamResourceProps {
        /**
         * ``AWS::Logs::LogStream.LogGroupName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-loggroupname
         */
        logGroupName: string | cdk.Token;
        /**
         * ``AWS::Logs::LogStream.LogStreamName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-logstreamname
         */
        logStreamName?: string | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html
     */
    class LogStreamResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * Creates a new ``AWS::Logs::LogStream``.
         *
         * @param parent     the ``cdk.Construct`` this ``LogStreamResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``LogStreamResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: LogStreamResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
}
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html
     */
    interface MetricFilterResourceProps {
        /**
         * ``AWS::Logs::MetricFilter.FilterPattern``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-filterpattern
         */
        filterPattern: string | cdk.Token;
        /**
         * ``AWS::Logs::MetricFilter.LogGroupName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-loggroupname
         */
        logGroupName: string | cdk.Token;
        /**
         * ``AWS::Logs::MetricFilter.MetricTransformations``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-metrictransformations
         */
        metricTransformations: Array<MetricFilterResource.MetricTransformationProperty | cdk.Token> | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html
     */
    class MetricFilterResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * Creates a new ``AWS::Logs::MetricFilter``.
         *
         * @param parent     the ``cdk.Construct`` this ``MetricFilterResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``MetricFilterResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: MetricFilterResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
    namespace MetricFilterResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html
         */
        interface MetricTransformationProperty {
            /**
             * ``MetricFilterResource.MetricTransformationProperty.DefaultValue``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-defaultvalue
             */
            defaultValue?: number | cdk.Token;
            /**
             * ``MetricFilterResource.MetricTransformationProperty.MetricName``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricname
             */
            metricName: string | cdk.Token;
            /**
             * ``MetricFilterResource.MetricTransformationProperty.MetricNamespace``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricnamespace
             */
            metricNamespace: string | cdk.Token;
            /**
             * ``MetricFilterResource.MetricTransformationProperty.MetricValue``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricvalue
             */
            metricValue: string | cdk.Token;
        }
    }
}
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
     */
    interface SubscriptionFilterResourceProps {
        /**
         * ``AWS::Logs::SubscriptionFilter.DestinationArn``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-destinationarn
         */
        destinationArn: string | cdk.Token;
        /**
         * ``AWS::Logs::SubscriptionFilter.FilterPattern``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern
         */
        filterPattern: string | cdk.Token;
        /**
         * ``AWS::Logs::SubscriptionFilter.LogGroupName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname
         */
        logGroupName: string | cdk.Token;
        /**
         * ``AWS::Logs::SubscriptionFilter.RoleArn``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-rolearn
         */
        roleArn?: string | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
     */
    class SubscriptionFilterResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * Creates a new ``AWS::Logs::SubscriptionFilter``.
         *
         * @param parent     the ``cdk.Construct`` this ``SubscriptionFilterResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``SubscriptionFilterResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: SubscriptionFilterResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
}
