import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciApmTracesTraceConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_traces_trace#apm_domain_id DataOciApmTracesTrace#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_traces_trace#id DataOciApmTracesTrace#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_traces_trace#time_trace_started_greater_than_or_equal_to DataOciApmTracesTrace#time_trace_started_greater_than_or_equal_to}
    */
    readonly timeTraceStartedGreaterThanOrEqualTo?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_traces_trace#time_trace_started_less_than DataOciApmTracesTrace#time_trace_started_less_than}
    */
    readonly timeTraceStartedLessThan?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_traces_trace#trace_key DataOciApmTracesTrace#trace_key}
    */
    readonly traceKey: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_traces_trace#trace_namespace DataOciApmTracesTrace#trace_namespace}
    */
    readonly traceNamespace?: string;
}
export interface DataOciApmTracesTraceServiceSummaries {
}
export declare function dataOciApmTracesTraceServiceSummariesToTerraform(struct?: DataOciApmTracesTraceServiceSummaries): any;
export declare function dataOciApmTracesTraceServiceSummariesToHclTerraform(struct?: DataOciApmTracesTraceServiceSummaries): any;
export declare class DataOciApmTracesTraceServiceSummariesOutputReference 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(): DataOciApmTracesTraceServiceSummaries | undefined;
    set internalValue(value: DataOciApmTracesTraceServiceSummaries | undefined);
    get errorSpans(): string;
    get spanServiceName(): string;
    get totalSpans(): string;
}
export declare class DataOciApmTracesTraceServiceSummariesList 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): DataOciApmTracesTraceServiceSummariesOutputReference;
}
export interface DataOciApmTracesTraceSpanSummaryServiceSummaries {
}
export declare function dataOciApmTracesTraceSpanSummaryServiceSummariesToTerraform(struct?: DataOciApmTracesTraceSpanSummaryServiceSummaries): any;
export declare function dataOciApmTracesTraceSpanSummaryServiceSummariesToHclTerraform(struct?: DataOciApmTracesTraceSpanSummaryServiceSummaries): any;
export declare class DataOciApmTracesTraceSpanSummaryServiceSummariesOutputReference 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(): DataOciApmTracesTraceSpanSummaryServiceSummaries | undefined;
    set internalValue(value: DataOciApmTracesTraceSpanSummaryServiceSummaries | undefined);
    get errorSpans(): string;
    get spanServiceName(): string;
    get totalSpans(): string;
}
export declare class DataOciApmTracesTraceSpanSummaryServiceSummariesList 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): DataOciApmTracesTraceSpanSummaryServiceSummariesOutputReference;
}
export interface DataOciApmTracesTraceSpanSummary {
}
export declare function dataOciApmTracesTraceSpanSummaryToTerraform(struct?: DataOciApmTracesTraceSpanSummary): any;
export declare function dataOciApmTracesTraceSpanSummaryToHclTerraform(struct?: DataOciApmTracesTraceSpanSummary): any;
export declare class DataOciApmTracesTraceSpanSummaryOutputReference 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(): DataOciApmTracesTraceSpanSummary | undefined;
    set internalValue(value: DataOciApmTracesTraceSpanSummary | undefined);
    get errorSpanCount(): number;
    get isFault(): cdktf.IResolvable;
    get key(): string;
    get rootSpanDurationInMs(): number;
    get rootSpanOperationName(): string;
    get rootSpanServiceName(): string;
    private _serviceSummaries;
    get serviceSummaries(): DataOciApmTracesTraceSpanSummaryServiceSummariesList;
    get spanCount(): number;
    get timeEarliestSpanStarted(): string;
    get timeLatestSpanEnded(): string;
    get timeRootSpanEnded(): string;
    get timeRootSpanStarted(): string;
    get traceDurationInMs(): number;
    get traceErrorCode(): string;
    get traceErrorType(): string;
    get traceStatus(): string;
}
export declare class DataOciApmTracesTraceSpanSummaryList 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): DataOciApmTracesTraceSpanSummaryOutputReference;
}
export interface DataOciApmTracesTraceSpansLogsSpanLogs {
}
export declare function dataOciApmTracesTraceSpansLogsSpanLogsToTerraform(struct?: DataOciApmTracesTraceSpansLogsSpanLogs): any;
export declare function dataOciApmTracesTraceSpansLogsSpanLogsToHclTerraform(struct?: DataOciApmTracesTraceSpansLogsSpanLogs): any;
export declare class DataOciApmTracesTraceSpansLogsSpanLogsOutputReference 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(): DataOciApmTracesTraceSpansLogsSpanLogs | undefined;
    set internalValue(value: DataOciApmTracesTraceSpansLogsSpanLogs | undefined);
    get logKey(): string;
    get logValue(): string;
}
export declare class DataOciApmTracesTraceSpansLogsSpanLogsList 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): DataOciApmTracesTraceSpansLogsSpanLogsOutputReference;
}
export interface DataOciApmTracesTraceSpansLogs {
}
export declare function dataOciApmTracesTraceSpansLogsToTerraform(struct?: DataOciApmTracesTraceSpansLogs): any;
export declare function dataOciApmTracesTraceSpansLogsToHclTerraform(struct?: DataOciApmTracesTraceSpansLogs): any;
export declare class DataOciApmTracesTraceSpansLogsOutputReference 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(): DataOciApmTracesTraceSpansLogs | undefined;
    set internalValue(value: DataOciApmTracesTraceSpansLogs | undefined);
    get eventName(): string;
    private _spanLogs;
    get spanLogs(): DataOciApmTracesTraceSpansLogsSpanLogsList;
    get timeCreated(): string;
}
export declare class DataOciApmTracesTraceSpansLogsList 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): DataOciApmTracesTraceSpansLogsOutputReference;
}
export interface DataOciApmTracesTraceSpansTags {
}
export declare function dataOciApmTracesTraceSpansTagsToTerraform(struct?: DataOciApmTracesTraceSpansTags): any;
export declare function dataOciApmTracesTraceSpansTagsToHclTerraform(struct?: DataOciApmTracesTraceSpansTags): any;
export declare class DataOciApmTracesTraceSpansTagsOutputReference 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(): DataOciApmTracesTraceSpansTags | undefined;
    set internalValue(value: DataOciApmTracesTraceSpansTags | undefined);
    get tagName(): string;
    get tagValue(): string;
}
export declare class DataOciApmTracesTraceSpansTagsList 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): DataOciApmTracesTraceSpansTagsOutputReference;
}
export interface DataOciApmTracesTraceSpans {
}
export declare function dataOciApmTracesTraceSpansToTerraform(struct?: DataOciApmTracesTraceSpans): any;
export declare function dataOciApmTracesTraceSpansToHclTerraform(struct?: DataOciApmTracesTraceSpans): any;
export declare class DataOciApmTracesTraceSpansOutputReference 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(): DataOciApmTracesTraceSpans | undefined;
    set internalValue(value: DataOciApmTracesTraceSpans | undefined);
    get durationInMs(): string;
    get isError(): cdktf.IResolvable;
    get key(): string;
    get kind(): string;
    private _logs;
    get logs(): DataOciApmTracesTraceSpansLogsList;
    get operationName(): string;
    get parentSpanKey(): string;
    get serviceName(): string;
    get sourceName(): string;
    private _tags;
    get tags(): DataOciApmTracesTraceSpansTagsList;
    get timeEnded(): string;
    get timeStarted(): string;
    get traceKey(): string;
}
export declare class DataOciApmTracesTraceSpansList 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): DataOciApmTracesTraceSpansOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_traces_trace oci_apm_traces_trace}
*/
export declare class DataOciApmTracesTrace extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_apm_traces_trace";
    /**
    * Generates CDKTF code for importing a DataOciApmTracesTrace 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 DataOciApmTracesTrace to import
    * @param importFromId The id of the existing DataOciApmTracesTrace that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/apm_traces_trace#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciApmTracesTrace 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_traces_trace oci_apm_traces_trace} 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 DataOciApmTracesTraceConfig
    */
    constructor(scope: Construct, id: string, config: DataOciApmTracesTraceConfig);
    private _apmDomainId?;
    get apmDomainId(): string;
    set apmDomainId(value: string);
    get apmDomainIdInput(): string | undefined;
    get errorSpanCount(): number;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get isFault(): cdktf.IResolvable;
    get key(): string;
    get rootSpanDurationInMs(): number;
    get rootSpanOperationName(): string;
    get rootSpanServiceName(): string;
    private _serviceSummaries;
    get serviceSummaries(): DataOciApmTracesTraceServiceSummariesList;
    get sourceName(): string;
    get spanCount(): number;
    private _spanSummary;
    get spanSummary(): DataOciApmTracesTraceSpanSummaryList;
    private _spans;
    get spans(): DataOciApmTracesTraceSpansList;
    get timeEarliestSpanStarted(): string;
    get timeLatestSpanEnded(): string;
    get timeRootSpanEnded(): string;
    get timeRootSpanStarted(): string;
    private _timeTraceStartedGreaterThanOrEqualTo?;
    get timeTraceStartedGreaterThanOrEqualTo(): string;
    set timeTraceStartedGreaterThanOrEqualTo(value: string);
    resetTimeTraceStartedGreaterThanOrEqualTo(): void;
    get timeTraceStartedGreaterThanOrEqualToInput(): string | undefined;
    private _timeTraceStartedLessThan?;
    get timeTraceStartedLessThan(): string;
    set timeTraceStartedLessThan(value: string);
    resetTimeTraceStartedLessThan(): void;
    get timeTraceStartedLessThanInput(): string | undefined;
    get traceDurationInMs(): number;
    get traceErrorCode(): string;
    get traceErrorType(): string;
    private _traceKey?;
    get traceKey(): string;
    set traceKey(value: string);
    get traceKeyInput(): string | undefined;
    private _traceNamespace?;
    get traceNamespace(): string;
    set traceNamespace(value: string);
    resetTraceNamespace(): void;
    get traceNamespaceInput(): string | undefined;
    get traceStatus(): string;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
