import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciAutoscalingAutoScalingConfigurationConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/autoscaling_auto_scaling_configuration#auto_scaling_configuration_id DataOciAutoscalingAutoScalingConfiguration#auto_scaling_configuration_id}
    */
    readonly autoScalingConfigurationId: string;
}
export interface DataOciAutoscalingAutoScalingConfigurationAutoScalingResources {
}
export declare function dataOciAutoscalingAutoScalingConfigurationAutoScalingResourcesToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationAutoScalingResources): any;
export declare function dataOciAutoscalingAutoScalingConfigurationAutoScalingResourcesToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationAutoScalingResources): any;
export declare class DataOciAutoscalingAutoScalingConfigurationAutoScalingResourcesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationAutoScalingResources | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationAutoScalingResources | undefined);
    get id(): string;
    get type(): string;
}
export declare class DataOciAutoscalingAutoScalingConfigurationAutoScalingResourcesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationAutoScalingResourcesOutputReference;
}
export interface DataOciAutoscalingAutoScalingConfigurationPoliciesCapacity {
}
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesCapacityToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesCapacity): any;
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesCapacityToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesCapacity): any;
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesCapacityOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationPoliciesCapacity | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationPoliciesCapacity | undefined);
    get initial(): number;
    get max(): number;
    get min(): number;
}
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesCapacityList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationPoliciesCapacityOutputReference;
}
export interface DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionSchedule {
}
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesExecutionScheduleToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionSchedule): any;
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesExecutionScheduleToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionSchedule): any;
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionScheduleOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionSchedule | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionSchedule | undefined);
    get expression(): string;
    get timezone(): string;
    get type(): string;
}
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionScheduleList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionScheduleOutputReference;
}
export interface DataOciAutoscalingAutoScalingConfigurationPoliciesResourceAction {
}
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesResourceActionToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesResourceAction): any;
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesResourceActionToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesResourceAction): any;
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesResourceActionOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationPoliciesResourceAction | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationPoliciesResourceAction | undefined);
    get action(): string;
    get actionType(): string;
}
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesResourceActionList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationPoliciesResourceActionOutputReference;
}
export interface DataOciAutoscalingAutoScalingConfigurationPoliciesRulesAction {
}
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesRulesActionToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesAction): any;
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesRulesActionToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesAction): any;
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesRulesActionOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesAction | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesAction | undefined);
    get type(): string;
    get value(): number;
}
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesRulesActionList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesActionOutputReference;
}
export interface DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThreshold {
}
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThresholdToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThreshold): any;
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThresholdToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThreshold): any;
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThresholdOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThreshold | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThreshold | undefined);
    get operator(): string;
    get value(): number;
}
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThresholdList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThresholdOutputReference;
}
export interface DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetric {
}
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetric): any;
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetric): any;
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetric | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetric | undefined);
    get metricType(): string;
    private _threshold;
    get threshold(): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricThresholdList;
}
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricOutputReference;
}
export interface DataOciAutoscalingAutoScalingConfigurationPoliciesRules {
}
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesRulesToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesRules): any;
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesRulesToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPoliciesRules): any;
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesRulesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationPoliciesRules | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationPoliciesRules | undefined);
    private _action;
    get action(): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesActionList;
    get displayName(): string;
    get id(): string;
    private _metric;
    get metric(): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesMetricList;
}
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesOutputReference;
}
export interface DataOciAutoscalingAutoScalingConfigurationPolicies {
}
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesToTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPolicies): any;
export declare function dataOciAutoscalingAutoScalingConfigurationPoliciesToHclTerraform(struct?: DataOciAutoscalingAutoScalingConfigurationPolicies): any;
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciAutoscalingAutoScalingConfigurationPolicies | undefined;
    set internalValue(value: DataOciAutoscalingAutoScalingConfigurationPolicies | undefined);
    private _capacity;
    get capacity(): DataOciAutoscalingAutoScalingConfigurationPoliciesCapacityList;
    get displayName(): string;
    private _executionSchedule;
    get executionSchedule(): DataOciAutoscalingAutoScalingConfigurationPoliciesExecutionScheduleList;
    get id(): string;
    get isEnabled(): cdktf.IResolvable;
    get policyType(): string;
    private _resourceAction;
    get resourceAction(): DataOciAutoscalingAutoScalingConfigurationPoliciesResourceActionList;
    private _rules;
    get rules(): DataOciAutoscalingAutoScalingConfigurationPoliciesRulesList;
    get timeCreated(): string;
}
export declare class DataOciAutoscalingAutoScalingConfigurationPoliciesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciAutoscalingAutoScalingConfigurationPoliciesOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/autoscaling_auto_scaling_configuration oci_autoscaling_auto_scaling_configuration}
*/
export declare class DataOciAutoscalingAutoScalingConfiguration extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_autoscaling_auto_scaling_configuration";
    /**
    * Generates CDKTF code for importing a DataOciAutoscalingAutoScalingConfiguration resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the DataOciAutoscalingAutoScalingConfiguration to import
    * @param importFromId The id of the existing DataOciAutoscalingAutoScalingConfiguration that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/autoscaling_auto_scaling_configuration#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciAutoscalingAutoScalingConfiguration to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/autoscaling_auto_scaling_configuration oci_autoscaling_auto_scaling_configuration} Data Source
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options DataOciAutoscalingAutoScalingConfigurationConfig
    */
    constructor(scope: Construct, id: string, config: DataOciAutoscalingAutoScalingConfigurationConfig);
    private _autoScalingConfigurationId?;
    get autoScalingConfigurationId(): string;
    set autoScalingConfigurationId(value: string);
    get autoScalingConfigurationIdInput(): string | undefined;
    private _autoScalingResources;
    get autoScalingResources(): DataOciAutoscalingAutoScalingConfigurationAutoScalingResourcesList;
    get compartmentId(): string;
    get coolDownInSeconds(): number;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get displayName(): string;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get id(): string;
    get isEnabled(): cdktf.IResolvable;
    get maxResourceCount(): number;
    get minResourceCount(): number;
    private _policies;
    get policies(): DataOciAutoscalingAutoScalingConfigurationPoliciesList;
    get timeCreated(): string;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
