import cdk = require('@aws-cdk/cdk');
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html
     */
    interface AlarmResourceProps {
        /**
         * ``AWS::CloudWatch::Alarm.ComparisonOperator``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-comparisonoperator
         */
        comparisonOperator: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.EvaluationPeriods``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-evaluationperiods
         */
        evaluationPeriods: number | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.MetricName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-metricname
         */
        metricName: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.Namespace``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-namespace
         */
        namespace: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.Period``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-period
         */
        period: number | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.Threshold``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-threshold
         */
        threshold: number | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.ActionsEnabled``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-actionsenabled
         */
        actionsEnabled?: boolean | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.AlarmActions``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmactions
         */
        alarmActions?: Array<string | cdk.Token> | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.AlarmDescription``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmdescription
         */
        alarmDescription?: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.AlarmName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmname
         */
        alarmName?: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.Dimensions``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-dimension
         */
        dimensions?: Array<AlarmResource.DimensionProperty | cdk.Token> | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.EvaluateLowSampleCountPercentile``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-evaluatelowsamplecountpercentile
         */
        evaluateLowSampleCountPercentile?: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.ExtendedStatistic``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-extendedstatistic
         */
        extendedStatistic?: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.InsufficientDataActions``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-insufficientdataactions
         */
        insufficientDataActions?: Array<string | cdk.Token> | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.OKActions``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-okactions
         */
        okActions?: Array<string | cdk.Token> | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.Statistic``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-statistic
         */
        statistic?: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.TreatMissingData``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-treatmissingdata
         */
        treatMissingData?: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Alarm.Unit``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-unit
         */
        unit?: string | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html
     */
    class AlarmResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * @cloudformation_attribute Arn
         */
        readonly alarmArn: AlarmArn;
        /**
         * Creates a new ``AWS::CloudWatch::Alarm``.
         *
         * @param parent     the ``cdk.Construct`` this ``AlarmResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``AlarmResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: AlarmResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
    namespace AlarmResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html
         */
        interface DimensionProperty {
            /**
             * ``AlarmResource.DimensionProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html#cfn-cloudwatch-alarm-dimension-name
             */
            name: string | cdk.Token;
            /**
             * ``AlarmResource.DimensionProperty.Value``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html#cfn-cloudwatch-alarm-dimension-value
             */
            value: string | cdk.Token;
        }
    }
}
export declare class AlarmArn extends cdk.Arn {
}
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html
     */
    interface DashboardResourceProps {
        /**
         * ``AWS::CloudWatch::Dashboard.DashboardBody``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardbody
         */
        dashboardBody: string | cdk.Token;
        /**
         * ``AWS::CloudWatch::Dashboard.DashboardName``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardname
         */
        dashboardName?: string | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html
     */
    class DashboardResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * Creates a new ``AWS::CloudWatch::Dashboard``.
         *
         * @param parent     the ``cdk.Construct`` this ``DashboardResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``DashboardResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: DashboardResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
}
