import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { AutomationRuleReference, IAutomationRuleRef } from "../../interfaces/generated/aws-computeoptimizer-interfaces.generated";
/**
 * Creates an AWS Compute Optimizer automation rule that automatically implements recommended actions based on your defined criteria and schedule.
 *
 * Automation rules are global resources that manage automated actions across all AWS Regions where Compute Optimizer Automation is available. Organization-level rules can only be created by the management account or delegated administrator.
 *
 * @cloudformationResource AWS::ComputeOptimizer::AutomationRule
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html
 */
export declare class CfnAutomationRule extends cdk.CfnResource implements cdk.IInspectable, IAutomationRuleRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnAutomationRule from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnAutomationRule;
    /**
     * Checks whether the given object is a CfnAutomationRule
     */
    static isCfnAutomationRule(x: any): x is CfnAutomationRule;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    criteria?: CfnAutomationRule.CriteriaProperty | cdk.IResolvable;
    /**
     * The description of the automation rule.
     */
    description?: string;
    /**
     * The name of the automation rule.
     */
    name: string;
    organizationConfiguration?: cdk.IResolvable | CfnAutomationRule.OrganizationConfigurationProperty;
    /**
     * Rule priority within its group.
     */
    priority?: string;
    /**
     * The types of recommended actions this rule will implement.
     */
    recommendedActionTypes: Array<string>;
    /**
     * The type of automation rule.
     */
    ruleType: string;
    schedule: cdk.IResolvable | CfnAutomationRule.ScheduleProperty;
    /**
     * The status of the automation rule.
     */
    status: string;
    /**
     * Tags associated with the automation rule.
     */
    tags?: Array<cdk.CfnTag>;
    /**
     * Create a new `AWS::ComputeOptimizer::AutomationRule`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnAutomationRuleProps);
    get automationRuleRef(): AutomationRuleReference;
    /**
     * The AWS account ID that owns the automation rule.
     *
     * @cloudformationAttribute AccountId
     */
    get attrAccountId(): string;
    /**
     * The timestamp when the automation rule was created.
     *
     * @cloudformationAttribute CreatedTimestamp
     */
    get attrCreatedTimestamp(): string;
    /**
     * The timestamp when the automation rule was last updated.
     *
     * @cloudformationAttribute LastUpdatedTimestamp
     */
    get attrLastUpdatedTimestamp(): string;
    /**
     * The Amazon Resource Name (ARN) of the automation rule.
     *
     * @cloudformationAttribute RuleArn
     */
    get attrRuleArn(): string;
    /**
     * The unique identifier of the automation rule.
     *
     * @cloudformationAttribute RuleId
     */
    get attrRuleId(): string;
    /**
     * The revision number of the automation rule.
     *
     * @cloudformationAttribute RuleRevision
     */
    get attrRuleRevision(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnAutomationRule {
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-organizationconfiguration.html
     */
    interface OrganizationConfigurationProperty {
        /**
         * List of account IDs where the organization rule applies.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-organizationconfiguration.html#cfn-computeoptimizer-automationrule-organizationconfiguration-accountids
         */
        readonly accountIds?: Array<string>;
        /**
         * When the rule should be applied relative to account rules.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-organizationconfiguration.html#cfn-computeoptimizer-automationrule-organizationconfiguration-ruleapplyorder
         */
        readonly ruleApplyOrder?: string;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-schedule.html
     */
    interface ScheduleProperty {
        /**
         * Execution window duration in minutes.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-schedule.html#cfn-computeoptimizer-automationrule-schedule-executionwindowinminutes
         */
        readonly executionWindowInMinutes?: number;
        /**
         * Schedule expression (e.g., cron or rate expression).
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-schedule.html#cfn-computeoptimizer-automationrule-schedule-scheduleexpression
         */
        readonly scheduleExpression?: string;
        /**
         * IANA timezone identifier.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-schedule.html#cfn-computeoptimizer-automationrule-schedule-scheduleexpressiontimezone
         */
        readonly scheduleExpressionTimezone?: string;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html
     */
    interface CriteriaProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html#cfn-computeoptimizer-automationrule-criteria-ebsvolumesizeingib
         */
        readonly ebsVolumeSizeInGib?: Array<CfnAutomationRule.IntegerCriteriaConditionProperty | cdk.IResolvable> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html#cfn-computeoptimizer-automationrule-criteria-ebsvolumetype
         */
        readonly ebsVolumeType?: Array<cdk.IResolvable | CfnAutomationRule.StringCriteriaConditionProperty> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html#cfn-computeoptimizer-automationrule-criteria-estimatedmonthlysavings
         */
        readonly estimatedMonthlySavings?: Array<CfnAutomationRule.DoubleCriteriaConditionProperty | cdk.IResolvable> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html#cfn-computeoptimizer-automationrule-criteria-lookbackperiodindays
         */
        readonly lookBackPeriodInDays?: Array<CfnAutomationRule.IntegerCriteriaConditionProperty | cdk.IResolvable> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html#cfn-computeoptimizer-automationrule-criteria-region
         */
        readonly region?: Array<cdk.IResolvable | CfnAutomationRule.StringCriteriaConditionProperty> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html#cfn-computeoptimizer-automationrule-criteria-resourcearn
         */
        readonly resourceArn?: Array<cdk.IResolvable | CfnAutomationRule.StringCriteriaConditionProperty> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html#cfn-computeoptimizer-automationrule-criteria-resourcetag
         */
        readonly resourceTag?: Array<cdk.IResolvable | CfnAutomationRule.ResourceTagsCriteriaConditionProperty> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-criteria.html#cfn-computeoptimizer-automationrule-criteria-restartneeded
         */
        readonly restartNeeded?: Array<cdk.IResolvable | CfnAutomationRule.StringCriteriaConditionProperty> | cdk.IResolvable;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-stringcriteriacondition.html
     */
    interface StringCriteriaConditionProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-stringcriteriacondition.html#cfn-computeoptimizer-automationrule-stringcriteriacondition-comparison
         */
        readonly comparison?: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-stringcriteriacondition.html#cfn-computeoptimizer-automationrule-stringcriteriacondition-values
         */
        readonly values?: Array<string>;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-integercriteriacondition.html
     */
    interface IntegerCriteriaConditionProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-integercriteriacondition.html#cfn-computeoptimizer-automationrule-integercriteriacondition-comparison
         */
        readonly comparison?: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-integercriteriacondition.html#cfn-computeoptimizer-automationrule-integercriteriacondition-values
         */
        readonly values?: Array<number> | cdk.IResolvable;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-doublecriteriacondition.html
     */
    interface DoubleCriteriaConditionProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-doublecriteriacondition.html#cfn-computeoptimizer-automationrule-doublecriteriacondition-comparison
         */
        readonly comparison?: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-doublecriteriacondition.html#cfn-computeoptimizer-automationrule-doublecriteriacondition-values
         */
        readonly values?: Array<number> | cdk.IResolvable;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-resourcetagscriteriacondition.html
     */
    interface ResourceTagsCriteriaConditionProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-resourcetagscriteriacondition.html#cfn-computeoptimizer-automationrule-resourcetagscriteriacondition-comparison
         */
        readonly comparison?: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-resourcetagscriteriacondition.html#cfn-computeoptimizer-automationrule-resourcetagscriteriacondition-key
         */
        readonly key?: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-computeoptimizer-automationrule-resourcetagscriteriacondition.html#cfn-computeoptimizer-automationrule-resourcetagscriteriacondition-values
         */
        readonly values?: Array<string>;
    }
}
/**
 * Properties for defining a `CfnAutomationRule`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html
 */
export interface CfnAutomationRuleProps {
    /**
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-criteria
     */
    readonly criteria?: CfnAutomationRule.CriteriaProperty | cdk.IResolvable;
    /**
     * The description of the automation rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-description
     */
    readonly description?: string;
    /**
     * The name of the automation rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-name
     */
    readonly name: string;
    /**
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-organizationconfiguration
     */
    readonly organizationConfiguration?: cdk.IResolvable | CfnAutomationRule.OrganizationConfigurationProperty;
    /**
     * Rule priority within its group.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-priority
     */
    readonly priority?: string;
    /**
     * The types of recommended actions this rule will implement.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-recommendedactiontypes
     */
    readonly recommendedActionTypes: Array<string>;
    /**
     * The type of automation rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-ruletype
     */
    readonly ruleType: string;
    /**
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-schedule
     */
    readonly schedule: cdk.IResolvable | CfnAutomationRule.ScheduleProperty;
    /**
     * The status of the automation rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-status
     */
    readonly status: string;
    /**
     * Tags associated with the automation rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-computeoptimizer-automationrule.html#cfn-computeoptimizer-automationrule-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
export type { IAutomationRuleRef, AutomationRuleReference };
