import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciServiceMeshIngressGatewayConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/service_mesh_ingress_gateway#ingress_gateway_id DataOciServiceMeshIngressGateway#ingress_gateway_id}
    */
    readonly ingressGatewayId: string;
}
export interface DataOciServiceMeshIngressGatewayAccessLogging {
}
export declare function dataOciServiceMeshIngressGatewayAccessLoggingToTerraform(struct?: DataOciServiceMeshIngressGatewayAccessLogging): any;
export declare function dataOciServiceMeshIngressGatewayAccessLoggingToHclTerraform(struct?: DataOciServiceMeshIngressGatewayAccessLogging): any;
export declare class DataOciServiceMeshIngressGatewayAccessLoggingOutputReference 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(): DataOciServiceMeshIngressGatewayAccessLogging | undefined;
    set internalValue(value: DataOciServiceMeshIngressGatewayAccessLogging | undefined);
    get isEnabled(): cdktf.IResolvable;
}
export declare class DataOciServiceMeshIngressGatewayAccessLoggingList 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): DataOciServiceMeshIngressGatewayAccessLoggingOutputReference;
}
export interface DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundle {
}
export declare function dataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundleToTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundle): any;
export declare function dataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundleToHclTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundle): any;
export declare class DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundleOutputReference 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(): DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundle | undefined;
    set internalValue(value: DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundle | undefined);
    get caBundleId(): string;
    get secretName(): string;
    get type(): string;
}
export declare class DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundleList 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): DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundleOutputReference;
}
export interface DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidation {
}
export declare function dataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationToTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidation): any;
export declare function dataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationToHclTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidation): any;
export declare class DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationOutputReference 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(): DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidation | undefined;
    set internalValue(value: DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidation | undefined);
    get subjectAlternateNames(): string[];
    private _trustedCaBundle;
    get trustedCaBundle(): DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationTrustedCaBundleList;
}
export declare class DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationList 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): DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationOutputReference;
}
export interface DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificate {
}
export declare function dataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificateToTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificate): any;
export declare function dataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificateToHclTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificate): any;
export declare class DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificateOutputReference 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(): DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificate | undefined;
    set internalValue(value: DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificate | undefined);
    get certificateId(): string;
    get secretName(): string;
    get type(): string;
}
export declare class DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificateList 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): DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificateOutputReference;
}
export interface DataOciServiceMeshIngressGatewayHostsListenersTls {
}
export declare function dataOciServiceMeshIngressGatewayHostsListenersTlsToTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListenersTls): any;
export declare function dataOciServiceMeshIngressGatewayHostsListenersTlsToHclTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListenersTls): any;
export declare class DataOciServiceMeshIngressGatewayHostsListenersTlsOutputReference 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(): DataOciServiceMeshIngressGatewayHostsListenersTls | undefined;
    set internalValue(value: DataOciServiceMeshIngressGatewayHostsListenersTls | undefined);
    private _clientValidation;
    get clientValidation(): DataOciServiceMeshIngressGatewayHostsListenersTlsClientValidationList;
    get mode(): string;
    private _serverCertificate;
    get serverCertificate(): DataOciServiceMeshIngressGatewayHostsListenersTlsServerCertificateList;
}
export declare class DataOciServiceMeshIngressGatewayHostsListenersTlsList 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): DataOciServiceMeshIngressGatewayHostsListenersTlsOutputReference;
}
export interface DataOciServiceMeshIngressGatewayHostsListeners {
}
export declare function dataOciServiceMeshIngressGatewayHostsListenersToTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListeners): any;
export declare function dataOciServiceMeshIngressGatewayHostsListenersToHclTerraform(struct?: DataOciServiceMeshIngressGatewayHostsListeners): any;
export declare class DataOciServiceMeshIngressGatewayHostsListenersOutputReference 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(): DataOciServiceMeshIngressGatewayHostsListeners | undefined;
    set internalValue(value: DataOciServiceMeshIngressGatewayHostsListeners | undefined);
    get port(): number;
    get protocol(): string;
    private _tls;
    get tls(): DataOciServiceMeshIngressGatewayHostsListenersTlsList;
}
export declare class DataOciServiceMeshIngressGatewayHostsListenersList 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): DataOciServiceMeshIngressGatewayHostsListenersOutputReference;
}
export interface DataOciServiceMeshIngressGatewayHosts {
}
export declare function dataOciServiceMeshIngressGatewayHostsToTerraform(struct?: DataOciServiceMeshIngressGatewayHosts): any;
export declare function dataOciServiceMeshIngressGatewayHostsToHclTerraform(struct?: DataOciServiceMeshIngressGatewayHosts): any;
export declare class DataOciServiceMeshIngressGatewayHostsOutputReference 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(): DataOciServiceMeshIngressGatewayHosts | undefined;
    set internalValue(value: DataOciServiceMeshIngressGatewayHosts | undefined);
    get hostnames(): string[];
    private _listeners;
    get listeners(): DataOciServiceMeshIngressGatewayHostsListenersList;
    get name(): string;
}
export declare class DataOciServiceMeshIngressGatewayHostsList 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): DataOciServiceMeshIngressGatewayHostsOutputReference;
}
export interface DataOciServiceMeshIngressGatewayMtls {
}
export declare function dataOciServiceMeshIngressGatewayMtlsToTerraform(struct?: DataOciServiceMeshIngressGatewayMtls): any;
export declare function dataOciServiceMeshIngressGatewayMtlsToHclTerraform(struct?: DataOciServiceMeshIngressGatewayMtls): any;
export declare class DataOciServiceMeshIngressGatewayMtlsOutputReference 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(): DataOciServiceMeshIngressGatewayMtls | undefined;
    set internalValue(value: DataOciServiceMeshIngressGatewayMtls | undefined);
    get certificateId(): string;
    get maximumValidity(): number;
}
export declare class DataOciServiceMeshIngressGatewayMtlsList 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): DataOciServiceMeshIngressGatewayMtlsOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/service_mesh_ingress_gateway oci_service_mesh_ingress_gateway}
*/
export declare class DataOciServiceMeshIngressGateway extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_service_mesh_ingress_gateway";
    /**
    * Generates CDKTF code for importing a DataOciServiceMeshIngressGateway 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 DataOciServiceMeshIngressGateway to import
    * @param importFromId The id of the existing DataOciServiceMeshIngressGateway that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/service_mesh_ingress_gateway#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciServiceMeshIngressGateway 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/service_mesh_ingress_gateway oci_service_mesh_ingress_gateway} 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 DataOciServiceMeshIngressGatewayConfig
    */
    constructor(scope: Construct, id: string, config: DataOciServiceMeshIngressGatewayConfig);
    private _accessLogging;
    get accessLogging(): DataOciServiceMeshIngressGatewayAccessLoggingList;
    get compartmentId(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get description(): string;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    private _hosts;
    get hosts(): DataOciServiceMeshIngressGatewayHostsList;
    get id(): string;
    private _ingressGatewayId?;
    get ingressGatewayId(): string;
    set ingressGatewayId(value: string);
    get ingressGatewayIdInput(): string | undefined;
    get lifecycleDetails(): string;
    get meshId(): string;
    private _mtls;
    get mtls(): DataOciServiceMeshIngressGatewayMtlsList;
    get name(): string;
    get state(): string;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get timeCreated(): string;
    get timeUpdated(): string;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
