import { EvaluationModeConfigurationProps } from './configrule/EvaluationModeConfigurationProps';
import { Value } from '../../cloudformation/Value';
import { ScopeProps } from './configrule/ScopeProps';
import { ComplianceProps } from './configrule/ComplianceProps';
import { SourceProps } from './configrule/SourceProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ConfigRuleAttributes = {
    ConfigRuleId: Attribute<string>;
    Compliance_Type: Attribute<string>;
    Arn: Attribute<string>;
};
export type ConfigRule = AwsResource<'AWS::Config::ConfigRule', ConfigRuleProperties, ConfigRuleAttributes>;
/**
  <strong>Note</strong><br />
You must first create and start the AWS Config configuration recorder in order to create AWS Config managed rules with AWS CloudFormation. For more information, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html">Managing the Configuration Recorder</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html">the AWS Docs</a>
*/
export declare function configRule(configRuleProps: ConfigRuleProperties): ConfigRule;
/**
  <strong>Note</strong><br />
You must first create and start the AWS Config configuration recorder in order to create AWS Config managed rules with AWS CloudFormation. For more information, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html">Managing the Configuration Recorder</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html">the AWS Docs</a>
*/
export interface ConfigRuleProperties {
    /** <code>EvaluationModes</code>  <a name="cfn-config-configrule-evaluationmodes"></a>
  The modes the AWS Config rule can be evaluated in. The valid values are distinct objects. By default, the value is Detective evaluation mode only.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    evaluationModes?: EvaluationModeConfigurationProps[];
    /** <code>Description</code>  <a name="cfn-config-configrule-description"></a>
  The description that you provide for the AWS Config rule.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>256</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>Scope</code>  <a name="cfn-config-configrule-scope"></a>
  Defines which resources can trigger an evaluation for the rule. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value. Specify a scope to constrain the resources that can trigger an evaluation for the rule. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes.<br />
  The scope can be empty.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    scope?: ScopeProps;
    /** <code>Compliance</code>  <a name="cfn-config-configrule-compliance"></a>
  Indicates whether an AWS resource or AWS Config rule is compliant and provides the number of contributors that affect the compliance.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    compliance?: ComplianceProps;
    /** <code>ConfigRuleName</code>  <a name="cfn-config-configrule-configrulename"></a>
  A name for the AWS Config rule. If you don’t specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html">Name Type</a>.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>.*\S.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    configRuleName?: Value<string>;
    /** <p> */
    maximumExecutionFrequency?: Value<string>;
    /** <code>Source</code>  <a name="cfn-config-configrule-source"></a>
  Provides the rule owner (<code>AWS</code> for managed rules, <code>CUSTOM_POLICY</code> for Custom Policy rules, and <code>CUSTOM_LAMBDA</code> for Custom Lambda rules), the rule identifier, and the notifications that cause the function to evaluate your AWS resources.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    source: SourceProps;
    /** <code>InputParameters</code>  <a name="cfn-config-configrule-inputparameters"></a>
  A string, in JSON format, that is passed to the AWS Config rule Lambda function.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>1024</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    inputParameters?: Value<any>;
}
