import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface CoreIpsecConnectionTunnelManagementConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#display_name CoreIpsecConnectionTunnelManagement#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#id CoreIpsecConnectionTunnelManagement#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/resources/core_ipsec_connection_tunnel_management#ike_version CoreIpsecConnectionTunnelManagement#ike_version}
    */
    readonly ikeVersion?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#ipsec_id CoreIpsecConnectionTunnelManagement#ipsec_id}
    */
    readonly ipsecId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#nat_translation_enabled CoreIpsecConnectionTunnelManagement#nat_translation_enabled}
    */
    readonly natTranslationEnabled?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#oracle_can_initiate CoreIpsecConnectionTunnelManagement#oracle_can_initiate}
    */
    readonly oracleCanInitiate?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#routing CoreIpsecConnectionTunnelManagement#routing}
    */
    readonly routing?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#shared_secret CoreIpsecConnectionTunnelManagement#shared_secret}
    */
    readonly sharedSecret?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#tunnel_id CoreIpsecConnectionTunnelManagement#tunnel_id}
    */
    readonly tunnelId: string;
    /**
    * bgp_session_info block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#bgp_session_info CoreIpsecConnectionTunnelManagement#bgp_session_info}
    */
    readonly bgpSessionInfo?: CoreIpsecConnectionTunnelManagementBgpSessionInfo;
    /**
    * dpd_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#dpd_config CoreIpsecConnectionTunnelManagement#dpd_config}
    */
    readonly dpdConfig?: CoreIpsecConnectionTunnelManagementDpdConfig[] | cdktf.IResolvable;
    /**
    * encryption_domain_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#encryption_domain_config CoreIpsecConnectionTunnelManagement#encryption_domain_config}
    */
    readonly encryptionDomainConfig?: CoreIpsecConnectionTunnelManagementEncryptionDomainConfig;
    /**
    * phase_one_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#phase_one_details CoreIpsecConnectionTunnelManagement#phase_one_details}
    */
    readonly phaseOneDetails?: CoreIpsecConnectionTunnelManagementPhaseOneDetails;
    /**
    * phase_two_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#phase_two_details CoreIpsecConnectionTunnelManagement#phase_two_details}
    */
    readonly phaseTwoDetails?: CoreIpsecConnectionTunnelManagementPhaseTwoDetails;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#timeouts CoreIpsecConnectionTunnelManagement#timeouts}
    */
    readonly timeouts?: CoreIpsecConnectionTunnelManagementTimeouts;
}
export interface CoreIpsecConnectionTunnelManagementBgpSessionInfo {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#customer_bgp_asn CoreIpsecConnectionTunnelManagement#customer_bgp_asn}
    */
    readonly customerBgpAsn?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#customer_interface_ip CoreIpsecConnectionTunnelManagement#customer_interface_ip}
    */
    readonly customerInterfaceIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#customer_interface_ipv6 CoreIpsecConnectionTunnelManagement#customer_interface_ipv6}
    */
    readonly customerInterfaceIpv6?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#oracle_interface_ip CoreIpsecConnectionTunnelManagement#oracle_interface_ip}
    */
    readonly oracleInterfaceIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#oracle_interface_ipv6 CoreIpsecConnectionTunnelManagement#oracle_interface_ipv6}
    */
    readonly oracleInterfaceIpv6?: string;
}
export declare function coreIpsecConnectionTunnelManagementBgpSessionInfoToTerraform(struct?: CoreIpsecConnectionTunnelManagementBgpSessionInfoOutputReference | CoreIpsecConnectionTunnelManagementBgpSessionInfo): any;
export declare function coreIpsecConnectionTunnelManagementBgpSessionInfoToHclTerraform(struct?: CoreIpsecConnectionTunnelManagementBgpSessionInfoOutputReference | CoreIpsecConnectionTunnelManagementBgpSessionInfo): any;
export declare class CoreIpsecConnectionTunnelManagementBgpSessionInfoOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CoreIpsecConnectionTunnelManagementBgpSessionInfo | undefined;
    set internalValue(value: CoreIpsecConnectionTunnelManagementBgpSessionInfo | undefined);
    get bgpIpv6State(): string;
    get bgpState(): string;
    private _customerBgpAsn?;
    get customerBgpAsn(): string;
    set customerBgpAsn(value: string);
    resetCustomerBgpAsn(): void;
    get customerBgpAsnInput(): string | undefined;
    private _customerInterfaceIp?;
    get customerInterfaceIp(): string;
    set customerInterfaceIp(value: string);
    resetCustomerInterfaceIp(): void;
    get customerInterfaceIpInput(): string | undefined;
    private _customerInterfaceIpv6?;
    get customerInterfaceIpv6(): string;
    set customerInterfaceIpv6(value: string);
    resetCustomerInterfaceIpv6(): void;
    get customerInterfaceIpv6Input(): string | undefined;
    get oracleBgpAsn(): string;
    private _oracleInterfaceIp?;
    get oracleInterfaceIp(): string;
    set oracleInterfaceIp(value: string);
    resetOracleInterfaceIp(): void;
    get oracleInterfaceIpInput(): string | undefined;
    private _oracleInterfaceIpv6?;
    get oracleInterfaceIpv6(): string;
    set oracleInterfaceIpv6(value: string);
    resetOracleInterfaceIpv6(): void;
    get oracleInterfaceIpv6Input(): string | undefined;
}
export interface CoreIpsecConnectionTunnelManagementDpdConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#dpd_mode CoreIpsecConnectionTunnelManagement#dpd_mode}
    */
    readonly dpdMode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#dpd_timeout_in_sec CoreIpsecConnectionTunnelManagement#dpd_timeout_in_sec}
    */
    readonly dpdTimeoutInSec?: number;
}
export declare function coreIpsecConnectionTunnelManagementDpdConfigToTerraform(struct?: CoreIpsecConnectionTunnelManagementDpdConfig | cdktf.IResolvable): any;
export declare function coreIpsecConnectionTunnelManagementDpdConfigToHclTerraform(struct?: CoreIpsecConnectionTunnelManagementDpdConfig | cdktf.IResolvable): any;
export declare class CoreIpsecConnectionTunnelManagementDpdConfigOutputReference 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(): CoreIpsecConnectionTunnelManagementDpdConfig | cdktf.IResolvable | undefined;
    set internalValue(value: CoreIpsecConnectionTunnelManagementDpdConfig | cdktf.IResolvable | undefined);
    private _dpdMode?;
    get dpdMode(): string;
    set dpdMode(value: string);
    resetDpdMode(): void;
    get dpdModeInput(): string | undefined;
    private _dpdTimeoutInSec?;
    get dpdTimeoutInSec(): number;
    set dpdTimeoutInSec(value: number);
    resetDpdTimeoutInSec(): void;
    get dpdTimeoutInSecInput(): number | undefined;
}
export declare class CoreIpsecConnectionTunnelManagementDpdConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreIpsecConnectionTunnelManagementDpdConfig[] | 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): CoreIpsecConnectionTunnelManagementDpdConfigOutputReference;
}
export interface CoreIpsecConnectionTunnelManagementEncryptionDomainConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#cpe_traffic_selector CoreIpsecConnectionTunnelManagement#cpe_traffic_selector}
    */
    readonly cpeTrafficSelector?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#oracle_traffic_selector CoreIpsecConnectionTunnelManagement#oracle_traffic_selector}
    */
    readonly oracleTrafficSelector?: string[];
}
export declare function coreIpsecConnectionTunnelManagementEncryptionDomainConfigToTerraform(struct?: CoreIpsecConnectionTunnelManagementEncryptionDomainConfigOutputReference | CoreIpsecConnectionTunnelManagementEncryptionDomainConfig): any;
export declare function coreIpsecConnectionTunnelManagementEncryptionDomainConfigToHclTerraform(struct?: CoreIpsecConnectionTunnelManagementEncryptionDomainConfigOutputReference | CoreIpsecConnectionTunnelManagementEncryptionDomainConfig): any;
export declare class CoreIpsecConnectionTunnelManagementEncryptionDomainConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CoreIpsecConnectionTunnelManagementEncryptionDomainConfig | undefined;
    set internalValue(value: CoreIpsecConnectionTunnelManagementEncryptionDomainConfig | undefined);
    private _cpeTrafficSelector?;
    get cpeTrafficSelector(): string[];
    set cpeTrafficSelector(value: string[]);
    resetCpeTrafficSelector(): void;
    get cpeTrafficSelectorInput(): string[] | undefined;
    private _oracleTrafficSelector?;
    get oracleTrafficSelector(): string[];
    set oracleTrafficSelector(value: string[]);
    resetOracleTrafficSelector(): void;
    get oracleTrafficSelectorInput(): string[] | undefined;
}
export interface CoreIpsecConnectionTunnelManagementPhaseOneDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#custom_authentication_algorithm CoreIpsecConnectionTunnelManagement#custom_authentication_algorithm}
    */
    readonly customAuthenticationAlgorithm?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#custom_dh_group CoreIpsecConnectionTunnelManagement#custom_dh_group}
    */
    readonly customDhGroup?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#custom_encryption_algorithm CoreIpsecConnectionTunnelManagement#custom_encryption_algorithm}
    */
    readonly customEncryptionAlgorithm?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#is_custom_phase_one_config CoreIpsecConnectionTunnelManagement#is_custom_phase_one_config}
    */
    readonly isCustomPhaseOneConfig?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#lifetime CoreIpsecConnectionTunnelManagement#lifetime}
    */
    readonly lifetime?: number;
}
export declare function coreIpsecConnectionTunnelManagementPhaseOneDetailsToTerraform(struct?: CoreIpsecConnectionTunnelManagementPhaseOneDetailsOutputReference | CoreIpsecConnectionTunnelManagementPhaseOneDetails): any;
export declare function coreIpsecConnectionTunnelManagementPhaseOneDetailsToHclTerraform(struct?: CoreIpsecConnectionTunnelManagementPhaseOneDetailsOutputReference | CoreIpsecConnectionTunnelManagementPhaseOneDetails): any;
export declare class CoreIpsecConnectionTunnelManagementPhaseOneDetailsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CoreIpsecConnectionTunnelManagementPhaseOneDetails | undefined;
    set internalValue(value: CoreIpsecConnectionTunnelManagementPhaseOneDetails | undefined);
    private _customAuthenticationAlgorithm?;
    get customAuthenticationAlgorithm(): string;
    set customAuthenticationAlgorithm(value: string);
    resetCustomAuthenticationAlgorithm(): void;
    get customAuthenticationAlgorithmInput(): string | undefined;
    private _customDhGroup?;
    get customDhGroup(): string;
    set customDhGroup(value: string);
    resetCustomDhGroup(): void;
    get customDhGroupInput(): string | undefined;
    private _customEncryptionAlgorithm?;
    get customEncryptionAlgorithm(): string;
    set customEncryptionAlgorithm(value: string);
    resetCustomEncryptionAlgorithm(): void;
    get customEncryptionAlgorithmInput(): string | undefined;
    private _isCustomPhaseOneConfig?;
    get isCustomPhaseOneConfig(): boolean | cdktf.IResolvable;
    set isCustomPhaseOneConfig(value: boolean | cdktf.IResolvable);
    resetIsCustomPhaseOneConfig(): void;
    get isCustomPhaseOneConfigInput(): boolean | cdktf.IResolvable | undefined;
    get isIkeEstablished(): cdktf.IResolvable;
    private _lifetime?;
    get lifetime(): number;
    set lifetime(value: number);
    resetLifetime(): void;
    get lifetimeInput(): number | undefined;
    get negotiatedAuthenticationAlgorithm(): string;
    get negotiatedDhGroup(): string;
    get negotiatedEncryptionAlgorithm(): string;
    get remainingLifetime(): string;
    get remainingLifetimeInt(): number;
    get remainingLifetimeLastRetrieved(): string;
}
export interface CoreIpsecConnectionTunnelManagementPhaseTwoDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#custom_authentication_algorithm CoreIpsecConnectionTunnelManagement#custom_authentication_algorithm}
    */
    readonly customAuthenticationAlgorithm?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#custom_encryption_algorithm CoreIpsecConnectionTunnelManagement#custom_encryption_algorithm}
    */
    readonly customEncryptionAlgorithm?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#dh_group CoreIpsecConnectionTunnelManagement#dh_group}
    */
    readonly dhGroup?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#is_custom_phase_two_config CoreIpsecConnectionTunnelManagement#is_custom_phase_two_config}
    */
    readonly isCustomPhaseTwoConfig?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#is_pfs_enabled CoreIpsecConnectionTunnelManagement#is_pfs_enabled}
    */
    readonly isPfsEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#lifetime CoreIpsecConnectionTunnelManagement#lifetime}
    */
    readonly lifetime?: number;
}
export declare function coreIpsecConnectionTunnelManagementPhaseTwoDetailsToTerraform(struct?: CoreIpsecConnectionTunnelManagementPhaseTwoDetailsOutputReference | CoreIpsecConnectionTunnelManagementPhaseTwoDetails): any;
export declare function coreIpsecConnectionTunnelManagementPhaseTwoDetailsToHclTerraform(struct?: CoreIpsecConnectionTunnelManagementPhaseTwoDetailsOutputReference | CoreIpsecConnectionTunnelManagementPhaseTwoDetails): any;
export declare class CoreIpsecConnectionTunnelManagementPhaseTwoDetailsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CoreIpsecConnectionTunnelManagementPhaseTwoDetails | undefined;
    set internalValue(value: CoreIpsecConnectionTunnelManagementPhaseTwoDetails | undefined);
    private _customAuthenticationAlgorithm?;
    get customAuthenticationAlgorithm(): string;
    set customAuthenticationAlgorithm(value: string);
    resetCustomAuthenticationAlgorithm(): void;
    get customAuthenticationAlgorithmInput(): string | undefined;
    private _customEncryptionAlgorithm?;
    get customEncryptionAlgorithm(): string;
    set customEncryptionAlgorithm(value: string);
    resetCustomEncryptionAlgorithm(): void;
    get customEncryptionAlgorithmInput(): string | undefined;
    private _dhGroup?;
    get dhGroup(): string;
    set dhGroup(value: string);
    resetDhGroup(): void;
    get dhGroupInput(): string | undefined;
    private _isCustomPhaseTwoConfig?;
    get isCustomPhaseTwoConfig(): boolean | cdktf.IResolvable;
    set isCustomPhaseTwoConfig(value: boolean | cdktf.IResolvable);
    resetIsCustomPhaseTwoConfig(): void;
    get isCustomPhaseTwoConfigInput(): boolean | cdktf.IResolvable | undefined;
    get isEspEstablished(): cdktf.IResolvable;
    private _isPfsEnabled?;
    get isPfsEnabled(): boolean | cdktf.IResolvable;
    set isPfsEnabled(value: boolean | cdktf.IResolvable);
    resetIsPfsEnabled(): void;
    get isPfsEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _lifetime?;
    get lifetime(): number;
    set lifetime(value: number);
    resetLifetime(): void;
    get lifetimeInput(): number | undefined;
    get negotiatedAuthenticationAlgorithm(): string;
    get negotiatedDhGroup(): string;
    get negotiatedEncryptionAlgorithm(): string;
    get remainingLifetime(): string;
    get remainingLifetimeInt(): number;
    get remainingLifetimeLastRetrieved(): string;
}
export interface CoreIpsecConnectionTunnelManagementTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#create CoreIpsecConnectionTunnelManagement#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#delete CoreIpsecConnectionTunnelManagement#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#update CoreIpsecConnectionTunnelManagement#update}
    */
    readonly update?: string;
}
export declare function coreIpsecConnectionTunnelManagementTimeoutsToTerraform(struct?: CoreIpsecConnectionTunnelManagementTimeouts | cdktf.IResolvable): any;
export declare function coreIpsecConnectionTunnelManagementTimeoutsToHclTerraform(struct?: CoreIpsecConnectionTunnelManagementTimeouts | cdktf.IResolvable): any;
export declare class CoreIpsecConnectionTunnelManagementTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CoreIpsecConnectionTunnelManagementTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: CoreIpsecConnectionTunnelManagementTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management oci_core_ipsec_connection_tunnel_management}
*/
export declare class CoreIpsecConnectionTunnelManagement extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_core_ipsec_connection_tunnel_management";
    /**
    * Generates CDKTF code for importing a CoreIpsecConnectionTunnelManagement 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 CoreIpsecConnectionTunnelManagement to import
    * @param importFromId The id of the existing CoreIpsecConnectionTunnelManagement that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_ipsec_connection_tunnel_management#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the CoreIpsecConnectionTunnelManagement 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/resources/core_ipsec_connection_tunnel_management oci_core_ipsec_connection_tunnel_management} Resource
    *
    * @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 CoreIpsecConnectionTunnelManagementConfig
    */
    constructor(scope: Construct, id: string, config: CoreIpsecConnectionTunnelManagementConfig);
    get associatedVirtualCircuits(): string[];
    get compartmentId(): string;
    get cpeIp(): string;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    get dpdMode(): string;
    get dpdTimeoutInSec(): number;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _ikeVersion?;
    get ikeVersion(): string;
    set ikeVersion(value: string);
    resetIkeVersion(): void;
    get ikeVersionInput(): string | undefined;
    private _ipsecId?;
    get ipsecId(): string;
    set ipsecId(value: string);
    get ipsecIdInput(): string | undefined;
    private _natTranslationEnabled?;
    get natTranslationEnabled(): string;
    set natTranslationEnabled(value: string);
    resetNatTranslationEnabled(): void;
    get natTranslationEnabledInput(): string | undefined;
    private _oracleCanInitiate?;
    get oracleCanInitiate(): string;
    set oracleCanInitiate(value: string);
    resetOracleCanInitiate(): void;
    get oracleCanInitiateInput(): string | undefined;
    private _routing?;
    get routing(): string;
    set routing(value: string);
    resetRouting(): void;
    get routingInput(): string | undefined;
    private _sharedSecret?;
    get sharedSecret(): string;
    set sharedSecret(value: string);
    resetSharedSecret(): void;
    get sharedSecretInput(): string | undefined;
    get state(): string;
    get status(): string;
    get timeCreated(): string;
    get timeStatusUpdated(): string;
    private _tunnelId?;
    get tunnelId(): string;
    set tunnelId(value: string);
    get tunnelIdInput(): string | undefined;
    get vpnIp(): string;
    private _bgpSessionInfo;
    get bgpSessionInfo(): CoreIpsecConnectionTunnelManagementBgpSessionInfoOutputReference;
    putBgpSessionInfo(value: CoreIpsecConnectionTunnelManagementBgpSessionInfo): void;
    resetBgpSessionInfo(): void;
    get bgpSessionInfoInput(): CoreIpsecConnectionTunnelManagementBgpSessionInfo | undefined;
    private _dpdConfig;
    get dpdConfig(): CoreIpsecConnectionTunnelManagementDpdConfigList;
    putDpdConfig(value: CoreIpsecConnectionTunnelManagementDpdConfig[] | cdktf.IResolvable): void;
    resetDpdConfig(): void;
    get dpdConfigInput(): cdktf.IResolvable | CoreIpsecConnectionTunnelManagementDpdConfig[] | undefined;
    private _encryptionDomainConfig;
    get encryptionDomainConfig(): CoreIpsecConnectionTunnelManagementEncryptionDomainConfigOutputReference;
    putEncryptionDomainConfig(value: CoreIpsecConnectionTunnelManagementEncryptionDomainConfig): void;
    resetEncryptionDomainConfig(): void;
    get encryptionDomainConfigInput(): CoreIpsecConnectionTunnelManagementEncryptionDomainConfig | undefined;
    private _phaseOneDetails;
    get phaseOneDetails(): CoreIpsecConnectionTunnelManagementPhaseOneDetailsOutputReference;
    putPhaseOneDetails(value: CoreIpsecConnectionTunnelManagementPhaseOneDetails): void;
    resetPhaseOneDetails(): void;
    get phaseOneDetailsInput(): CoreIpsecConnectionTunnelManagementPhaseOneDetails | undefined;
    private _phaseTwoDetails;
    get phaseTwoDetails(): CoreIpsecConnectionTunnelManagementPhaseTwoDetailsOutputReference;
    putPhaseTwoDetails(value: CoreIpsecConnectionTunnelManagementPhaseTwoDetails): void;
    resetPhaseTwoDetails(): void;
    get phaseTwoDetailsInput(): CoreIpsecConnectionTunnelManagementPhaseTwoDetails | undefined;
    private _timeouts;
    get timeouts(): CoreIpsecConnectionTunnelManagementTimeoutsOutputReference;
    putTimeouts(value: CoreIpsecConnectionTunnelManagementTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | CoreIpsecConnectionTunnelManagementTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
