import cdk = require('@aws-cdk/cdk');
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html
     */
    interface RuleResourceProps {
        /**
         * ``AWS::Events::Rule.Description``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description
         */
        description?: string | cdk.Token;
        /**
         * ``AWS::Events::Rule.EventPattern``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern
         */
        eventPattern?: object | cdk.Token;
        /**
         * ``AWS::Events::Rule.Name``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name
         */
        ruleName?: string | cdk.Token;
        /**
         * ``AWS::Events::Rule.RoleArn``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-rolearn
         */
        roleArn?: string | cdk.Token;
        /**
         * ``AWS::Events::Rule.ScheduleExpression``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression
         */
        scheduleExpression?: string | cdk.Token;
        /**
         * ``AWS::Events::Rule.State``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state
         */
        state?: string | cdk.Token;
        /**
         * ``AWS::Events::Rule.Targets``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets
         */
        targets?: Array<RuleResource.TargetProperty | cdk.Token> | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html
     */
    class RuleResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * @cloudformation_attribute Arn
         */
        readonly ruleArn: RuleArn;
        /**
         * Creates a new ``AWS::Events::Rule``.
         *
         * @param parent     the ``cdk.Construct`` this ``RuleResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``RuleResource``
         */
        constructor(parent: cdk.Construct, name: string, properties?: RuleResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
    namespace RuleResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html
         */
        interface EcsParametersProperty {
            /**
             * ``RuleResource.EcsParametersProperty.TaskCount``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskcount
             */
            taskCount?: number | cdk.Token;
            /**
             * ``RuleResource.EcsParametersProperty.TaskDefinitionArn``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskdefinitionarn
             */
            taskDefinitionArn: string | cdk.Token;
        }
    }
    namespace RuleResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html
         */
        interface InputTransformerProperty {
            /**
             * ``RuleResource.InputTransformerProperty.InputPathsMap``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputpathsmap
             */
            inputPathsMap?: {
                [key: string]: (string | cdk.Token);
            } | cdk.Token;
            /**
             * ``RuleResource.InputTransformerProperty.InputTemplate``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputtemplate
             */
            inputTemplate: string | cdk.Token;
        }
    }
    namespace RuleResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html
         */
        interface KinesisParametersProperty {
            /**
             * ``RuleResource.KinesisParametersProperty.PartitionKeyPath``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html#cfn-events-rule-kinesisparameters-partitionkeypath
             */
            partitionKeyPath: string | cdk.Token;
        }
    }
    namespace RuleResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html
         */
        interface RunCommandParametersProperty {
            /**
             * ``RuleResource.RunCommandParametersProperty.RunCommandTargets``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html#cfn-events-rule-runcommandparameters-runcommandtargets
             */
            runCommandTargets: Array<RunCommandTargetProperty | cdk.Token> | cdk.Token;
        }
    }
    namespace RuleResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html
         */
        interface RunCommandTargetProperty {
            /**
             * ``RuleResource.RunCommandTargetProperty.Key``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html#cfn-events-rule-runcommandtarget-key
             */
            key: string | cdk.Token;
            /**
             * ``RuleResource.RunCommandTargetProperty.Values``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html#cfn-events-rule-runcommandtarget-values
             */
            values: Array<string | cdk.Token> | cdk.Token;
        }
    }
    namespace RuleResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html
         */
        interface TargetProperty {
            /**
             * ``RuleResource.TargetProperty.Arn``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-arn
             */
            arn: string | cdk.Token;
            /**
             * ``RuleResource.TargetProperty.EcsParameters``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-ecsparameters
             */
            ecsParameters?: EcsParametersProperty | cdk.Token;
            /**
             * ``RuleResource.TargetProperty.Id``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id
             */
            id: string | cdk.Token;
            /**
             * ``RuleResource.TargetProperty.Input``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input
             */
            input?: string | cdk.Token;
            /**
             * ``RuleResource.TargetProperty.InputPath``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath
             */
            inputPath?: string | cdk.Token;
            /**
             * ``RuleResource.TargetProperty.InputTransformer``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputtransformer
             */
            inputTransformer?: InputTransformerProperty | cdk.Token;
            /**
             * ``RuleResource.TargetProperty.KinesisParameters``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-kinesisparameters
             */
            kinesisParameters?: KinesisParametersProperty | cdk.Token;
            /**
             * ``RuleResource.TargetProperty.RoleArn``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-rolearn
             */
            roleArn?: string | cdk.Token;
            /**
             * ``RuleResource.TargetProperty.RunCommandParameters``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-runcommandparameters
             */
            runCommandParameters?: RunCommandParametersProperty | cdk.Token;
        }
    }
}
export declare class RuleArn extends cdk.Arn {
}
