import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciApmConfigConfigsConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#apm_domain_id DataOciApmConfigConfigs#apm_domain_id}
    */
    readonly apmDomainId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#config_type DataOciApmConfigConfigs#config_type}
    */
    readonly configType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#defined_tag_equals DataOciApmConfigConfigs#defined_tag_equals}
    */
    readonly definedTagEquals?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#defined_tag_exists DataOciApmConfigConfigs#defined_tag_exists}
    */
    readonly definedTagExists?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#display_name DataOciApmConfigConfigs#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#freeform_tag_equals DataOciApmConfigConfigs#freeform_tag_equals}
    */
    readonly freeformTagEquals?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#freeform_tag_exists DataOciApmConfigConfigs#freeform_tag_exists}
    */
    readonly freeformTagExists?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#id DataOciApmConfigConfigs#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#options_group DataOciApmConfigConfigs#options_group}
    */
    readonly optionsGroup?: string;
    /**
    * filter block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#filter DataOciApmConfigConfigs#filter}
    */
    readonly filter?: DataOciApmConfigConfigsFilter[] | cdktf.IResolvable;
}
export interface DataOciApmConfigConfigsConfigCollectionItemsDimensions {
}
export declare function dataOciApmConfigConfigsConfigCollectionItemsDimensionsToTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItemsDimensions): any;
export declare function dataOciApmConfigConfigsConfigCollectionItemsDimensionsToHclTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItemsDimensions): any;
export declare class DataOciApmConfigConfigsConfigCollectionItemsDimensionsOutputReference 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(): DataOciApmConfigConfigsConfigCollectionItemsDimensions | undefined;
    set internalValue(value: DataOciApmConfigConfigsConfigCollectionItemsDimensions | undefined);
    get name(): string;
    get valueSource(): string;
}
export declare class DataOciApmConfigConfigsConfigCollectionItemsDimensionsList 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): DataOciApmConfigConfigsConfigCollectionItemsDimensionsOutputReference;
}
export interface DataOciApmConfigConfigsConfigCollectionItemsInUseBy {
}
export declare function dataOciApmConfigConfigsConfigCollectionItemsInUseByToTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItemsInUseBy): any;
export declare function dataOciApmConfigConfigsConfigCollectionItemsInUseByToHclTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItemsInUseBy): any;
export declare class DataOciApmConfigConfigsConfigCollectionItemsInUseByOutputReference 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(): DataOciApmConfigConfigsConfigCollectionItemsInUseBy | undefined;
    set internalValue(value: DataOciApmConfigConfigsConfigCollectionItemsInUseBy | undefined);
    get configType(): string;
    get displayName(): string;
    get id(): string;
    get optionsGroup(): string;
}
export declare class DataOciApmConfigConfigsConfigCollectionItemsInUseByList 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): DataOciApmConfigConfigsConfigCollectionItemsInUseByOutputReference;
}
export interface DataOciApmConfigConfigsConfigCollectionItemsMetrics {
}
export declare function dataOciApmConfigConfigsConfigCollectionItemsMetricsToTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItemsMetrics): any;
export declare function dataOciApmConfigConfigsConfigCollectionItemsMetricsToHclTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItemsMetrics): any;
export declare class DataOciApmConfigConfigsConfigCollectionItemsMetricsOutputReference 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(): DataOciApmConfigConfigsConfigCollectionItemsMetrics | undefined;
    set internalValue(value: DataOciApmConfigConfigsConfigCollectionItemsMetrics | undefined);
    get description(): string;
    get name(): string;
    get unit(): string;
    get valueSource(): string;
}
export declare class DataOciApmConfigConfigsConfigCollectionItemsMetricsList 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): DataOciApmConfigConfigsConfigCollectionItemsMetricsOutputReference;
}
export interface DataOciApmConfigConfigsConfigCollectionItemsRules {
}
export declare function dataOciApmConfigConfigsConfigCollectionItemsRulesToTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItemsRules): any;
export declare function dataOciApmConfigConfigsConfigCollectionItemsRulesToHclTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItemsRules): any;
export declare class DataOciApmConfigConfigsConfigCollectionItemsRulesOutputReference 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(): DataOciApmConfigConfigsConfigCollectionItemsRules | undefined;
    set internalValue(value: DataOciApmConfigConfigsConfigCollectionItemsRules | undefined);
    get displayName(): string;
    get filterText(): string;
    get isApplyToErrorSpans(): cdktf.IResolvable;
    get isEnabled(): cdktf.IResolvable;
    get priority(): number;
    get satisfiedResponseTime(): number;
    get toleratingResponseTime(): number;
}
export declare class DataOciApmConfigConfigsConfigCollectionItemsRulesList 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): DataOciApmConfigConfigsConfigCollectionItemsRulesOutputReference;
}
export interface DataOciApmConfigConfigsConfigCollectionItems {
}
export declare function dataOciApmConfigConfigsConfigCollectionItemsToTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItems): any;
export declare function dataOciApmConfigConfigsConfigCollectionItemsToHclTerraform(struct?: DataOciApmConfigConfigsConfigCollectionItems): any;
export declare class DataOciApmConfigConfigsConfigCollectionItemsOutputReference 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(): DataOciApmConfigConfigsConfigCollectionItems | undefined;
    set internalValue(value: DataOciApmConfigConfigsConfigCollectionItems | undefined);
    get apmDomainId(): string;
    get configType(): string;
    get createdBy(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get description(): string;
    private _dimensions;
    get dimensions(): DataOciApmConfigConfigsConfigCollectionItemsDimensionsList;
    get displayName(): string;
    get etag(): string;
    get filterId(): string;
    get filterText(): string;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get group(): string;
    get id(): string;
    private _inUseBy;
    get inUseBy(): DataOciApmConfigConfigsConfigCollectionItemsInUseByList;
    private _metrics;
    get metrics(): DataOciApmConfigConfigsConfigCollectionItemsMetricsList;
    get namespace(): string;
    get opcDryRun(): string;
    get options(): string;
    private _rules;
    get rules(): DataOciApmConfigConfigsConfigCollectionItemsRulesList;
    get timeCreated(): string;
    get timeUpdated(): string;
    get updatedBy(): string;
}
export declare class DataOciApmConfigConfigsConfigCollectionItemsList 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): DataOciApmConfigConfigsConfigCollectionItemsOutputReference;
}
export interface DataOciApmConfigConfigsConfigCollection {
}
export declare function dataOciApmConfigConfigsConfigCollectionToTerraform(struct?: DataOciApmConfigConfigsConfigCollection): any;
export declare function dataOciApmConfigConfigsConfigCollectionToHclTerraform(struct?: DataOciApmConfigConfigsConfigCollection): any;
export declare class DataOciApmConfigConfigsConfigCollectionOutputReference 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(): DataOciApmConfigConfigsConfigCollection | undefined;
    set internalValue(value: DataOciApmConfigConfigsConfigCollection | undefined);
    private _items;
    get items(): DataOciApmConfigConfigsConfigCollectionItemsList;
}
export declare class DataOciApmConfigConfigsConfigCollectionList 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): DataOciApmConfigConfigsConfigCollectionOutputReference;
}
export interface DataOciApmConfigConfigsFilter {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#name DataOciApmConfigConfigs#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#regex DataOciApmConfigConfigs#regex}
    */
    readonly regex?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#values DataOciApmConfigConfigs#values}
    */
    readonly values: string[];
}
export declare function dataOciApmConfigConfigsFilterToTerraform(struct?: DataOciApmConfigConfigsFilter | cdktf.IResolvable): any;
export declare function dataOciApmConfigConfigsFilterToHclTerraform(struct?: DataOciApmConfigConfigsFilter | cdktf.IResolvable): any;
export declare class DataOciApmConfigConfigsFilterOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @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(): DataOciApmConfigConfigsFilter | cdktf.IResolvable | undefined;
    set internalValue(value: DataOciApmConfigConfigsFilter | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _regex?;
    get regex(): boolean | cdktf.IResolvable;
    set regex(value: boolean | cdktf.IResolvable);
    resetRegex(): void;
    get regexInput(): boolean | cdktf.IResolvable | undefined;
    private _values?;
    get values(): string[];
    set values(value: string[]);
    get valuesInput(): string[] | undefined;
}
export declare class DataOciApmConfigConfigsFilterList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DataOciApmConfigConfigsFilter[] | cdktf.IResolvable;
    /**
    * @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): DataOciApmConfigConfigsFilterOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs oci_apm_config_configs}
*/
export declare class DataOciApmConfigConfigs extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_apm_config_configs";
    /**
    * Generates CDKTF code for importing a DataOciApmConfigConfigs 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 DataOciApmConfigConfigs to import
    * @param importFromId The id of the existing DataOciApmConfigConfigs that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_config_configs#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciApmConfigConfigs 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/apm_config_configs oci_apm_config_configs} 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 DataOciApmConfigConfigsConfig
    */
    constructor(scope: Construct, id: string, config: DataOciApmConfigConfigsConfig);
    private _apmDomainId?;
    get apmDomainId(): string;
    set apmDomainId(value: string);
    get apmDomainIdInput(): string | undefined;
    private _configCollection;
    get configCollection(): DataOciApmConfigConfigsConfigCollectionList;
    private _configType?;
    get configType(): string;
    set configType(value: string);
    resetConfigType(): void;
    get configTypeInput(): string | undefined;
    private _definedTagEquals?;
    get definedTagEquals(): string[];
    set definedTagEquals(value: string[]);
    resetDefinedTagEquals(): void;
    get definedTagEqualsInput(): string[] | undefined;
    private _definedTagExists?;
    get definedTagExists(): string[];
    set definedTagExists(value: string[]);
    resetDefinedTagExists(): void;
    get definedTagExistsInput(): string[] | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _freeformTagEquals?;
    get freeformTagEquals(): string[];
    set freeformTagEquals(value: string[]);
    resetFreeformTagEquals(): void;
    get freeformTagEqualsInput(): string[] | undefined;
    private _freeformTagExists?;
    get freeformTagExists(): string[];
    set freeformTagExists(value: string[]);
    resetFreeformTagExists(): void;
    get freeformTagExistsInput(): string[] | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _optionsGroup?;
    get optionsGroup(): string;
    set optionsGroup(value: string);
    resetOptionsGroup(): void;
    get optionsGroupInput(): string | undefined;
    private _filter;
    get filter(): DataOciApmConfigConfigsFilterList;
    putFilter(value: DataOciApmConfigConfigsFilter[] | cdktf.IResolvable): void;
    resetFilter(): void;
    get filterInput(): cdktf.IResolvable | DataOciApmConfigConfigsFilter[] | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
