/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface NetworkSecurityServerTlsPolicyConfig extends cdktf.TerraformMetaArguments {
    /**
    * This field applies only for Traffic Director policies. It is must be set to false for external HTTPS load balancer policies.
    * Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if allowOpen and mtlsPolicy are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility.
    * Consider using it if you wish to upgrade in place your deployment to TLS while having mixed TLS and non-TLS traffic reaching port :80.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#allow_open NetworkSecurityServerTlsPolicy#allow_open}
    */
    readonly allowOpen?: boolean | cdktf.IResolvable;
    /**
    * A free-text description of the resource. Max length 1024 characters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#description NetworkSecurityServerTlsPolicy#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#id NetworkSecurityServerTlsPolicy#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;
    /**
    * Set of label tags associated with the ServerTlsPolicy resource.
    *
    * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
    * Please refer to the field 'effective_labels' for all of the labels present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#labels NetworkSecurityServerTlsPolicy#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The location of the server tls policy.
    * The default value is 'global'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#location NetworkSecurityServerTlsPolicy#location}
    */
    readonly location?: string;
    /**
    * Name of the ServerTlsPolicy resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#name NetworkSecurityServerTlsPolicy#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#project NetworkSecurityServerTlsPolicy#project}
    */
    readonly project?: string;
    /**
    * mtls_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#mtls_policy NetworkSecurityServerTlsPolicy#mtls_policy}
    */
    readonly mtlsPolicy?: NetworkSecurityServerTlsPolicyMtlsPolicy;
    /**
    * server_certificate block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#server_certificate NetworkSecurityServerTlsPolicy#server_certificate}
    */
    readonly serverCertificate?: NetworkSecurityServerTlsPolicyServerCertificate;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#timeouts NetworkSecurityServerTlsPolicy#timeouts}
    */
    readonly timeouts?: NetworkSecurityServerTlsPolicyTimeouts;
}
export interface NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstance {
    /**
    * Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#plugin_instance NetworkSecurityServerTlsPolicy#plugin_instance}
    */
    readonly pluginInstance: string;
}
export declare function networkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstanceToTerraform(struct?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstanceOutputReference | NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstance): any;
export declare function networkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstanceToHclTerraform(struct?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstanceOutputReference | NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstance): any;
export declare class NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstanceOutputReference 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(): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstance | undefined;
    set internalValue(value: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstance | undefined);
    private _pluginInstance?;
    get pluginInstance(): string;
    set pluginInstance(value: string);
    get pluginInstanceInput(): string | undefined;
}
export interface NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpoint {
    /**
    * The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#target_uri NetworkSecurityServerTlsPolicy#target_uri}
    */
    readonly targetUri: string;
}
export declare function networkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpointToTerraform(struct?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpointOutputReference | NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpoint): any;
export declare function networkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpointToHclTerraform(struct?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpointOutputReference | NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpoint): any;
export declare class NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpointOutputReference 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(): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpoint | undefined;
    set internalValue(value: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpoint | undefined);
    private _targetUri?;
    get targetUri(): string;
    set targetUri(value: string);
    get targetUriInput(): string | undefined;
}
export interface NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa {
    /**
    * certificate_provider_instance block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#certificate_provider_instance NetworkSecurityServerTlsPolicy#certificate_provider_instance}
    */
    readonly certificateProviderInstance?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstance;
    /**
    * grpc_endpoint block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#grpc_endpoint NetworkSecurityServerTlsPolicy#grpc_endpoint}
    */
    readonly grpcEndpoint?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpoint;
}
export declare function networkSecurityServerTlsPolicyMtlsPolicyClientValidationCaToTerraform(struct?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa | cdktf.IResolvable): any;
export declare function networkSecurityServerTlsPolicyMtlsPolicyClientValidationCaToHclTerraform(struct?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa | cdktf.IResolvable): any;
export declare class NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaOutputReference 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(): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa | cdktf.IResolvable | undefined);
    private _certificateProviderInstance;
    get certificateProviderInstance(): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstanceOutputReference;
    putCertificateProviderInstance(value: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstance): void;
    resetCertificateProviderInstance(): void;
    get certificateProviderInstanceInput(): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaCertificateProviderInstance | undefined;
    private _grpcEndpoint;
    get grpcEndpoint(): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpointOutputReference;
    putGrpcEndpoint(value: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpoint): void;
    resetGrpcEndpoint(): void;
    get grpcEndpointInput(): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaGrpcEndpoint | undefined;
}
export declare class NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa[] | 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): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaOutputReference;
}
export interface NetworkSecurityServerTlsPolicyMtlsPolicy {
    /**
    * When the client presents an invalid certificate or no certificate to the load balancer, the clientValidationMode specifies how the client connection is handled.
    * Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty. Possible values: ["CLIENT_VALIDATION_MODE_UNSPECIFIED", "ALLOW_INVALID_OR_MISSING_CLIENT_CERT", "REJECT_INVALID"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#client_validation_mode NetworkSecurityServerTlsPolicy#client_validation_mode}
    */
    readonly clientValidationMode?: string;
    /**
    * Reference to the TrustConfig from certificatemanager.googleapis.com namespace.
    * If specified, the chain validation will be performed against certificates configured in the given TrustConfig.
    * Allowed only if the policy is to be used with external HTTPS load balancers.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#client_validation_trust_config NetworkSecurityServerTlsPolicy#client_validation_trust_config}
    */
    readonly clientValidationTrustConfig?: string;
    /**
    * client_validation_ca block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#client_validation_ca NetworkSecurityServerTlsPolicy#client_validation_ca}
    */
    readonly clientValidationCa?: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa[] | cdktf.IResolvable;
}
export declare function networkSecurityServerTlsPolicyMtlsPolicyToTerraform(struct?: NetworkSecurityServerTlsPolicyMtlsPolicyOutputReference | NetworkSecurityServerTlsPolicyMtlsPolicy): any;
export declare function networkSecurityServerTlsPolicyMtlsPolicyToHclTerraform(struct?: NetworkSecurityServerTlsPolicyMtlsPolicyOutputReference | NetworkSecurityServerTlsPolicyMtlsPolicy): any;
export declare class NetworkSecurityServerTlsPolicyMtlsPolicyOutputReference 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(): NetworkSecurityServerTlsPolicyMtlsPolicy | undefined;
    set internalValue(value: NetworkSecurityServerTlsPolicyMtlsPolicy | undefined);
    private _clientValidationMode?;
    get clientValidationMode(): string;
    set clientValidationMode(value: string);
    resetClientValidationMode(): void;
    get clientValidationModeInput(): string | undefined;
    private _clientValidationTrustConfig?;
    get clientValidationTrustConfig(): string;
    set clientValidationTrustConfig(value: string);
    resetClientValidationTrustConfig(): void;
    get clientValidationTrustConfigInput(): string | undefined;
    private _clientValidationCa;
    get clientValidationCa(): NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCaList;
    putClientValidationCa(value: NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa[] | cdktf.IResolvable): void;
    resetClientValidationCa(): void;
    get clientValidationCaInput(): cdktf.IResolvable | NetworkSecurityServerTlsPolicyMtlsPolicyClientValidationCa[] | undefined;
}
export interface NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstance {
    /**
    * Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#plugin_instance NetworkSecurityServerTlsPolicy#plugin_instance}
    */
    readonly pluginInstance: string;
}
export declare function networkSecurityServerTlsPolicyServerCertificateCertificateProviderInstanceToTerraform(struct?: NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstanceOutputReference | NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstance): any;
export declare function networkSecurityServerTlsPolicyServerCertificateCertificateProviderInstanceToHclTerraform(struct?: NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstanceOutputReference | NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstance): any;
export declare class NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstanceOutputReference 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(): NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstance | undefined;
    set internalValue(value: NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstance | undefined);
    private _pluginInstance?;
    get pluginInstance(): string;
    set pluginInstance(value: string);
    get pluginInstanceInput(): string | undefined;
}
export interface NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpoint {
    /**
    * The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#target_uri NetworkSecurityServerTlsPolicy#target_uri}
    */
    readonly targetUri: string;
}
export declare function networkSecurityServerTlsPolicyServerCertificateGrpcEndpointToTerraform(struct?: NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpointOutputReference | NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpoint): any;
export declare function networkSecurityServerTlsPolicyServerCertificateGrpcEndpointToHclTerraform(struct?: NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpointOutputReference | NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpoint): any;
export declare class NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpointOutputReference 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(): NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpoint | undefined;
    set internalValue(value: NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpoint | undefined);
    private _targetUri?;
    get targetUri(): string;
    set targetUri(value: string);
    get targetUriInput(): string | undefined;
}
export interface NetworkSecurityServerTlsPolicyServerCertificate {
    /**
    * certificate_provider_instance block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#certificate_provider_instance NetworkSecurityServerTlsPolicy#certificate_provider_instance}
    */
    readonly certificateProviderInstance?: NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstance;
    /**
    * grpc_endpoint block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#grpc_endpoint NetworkSecurityServerTlsPolicy#grpc_endpoint}
    */
    readonly grpcEndpoint?: NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpoint;
}
export declare function networkSecurityServerTlsPolicyServerCertificateToTerraform(struct?: NetworkSecurityServerTlsPolicyServerCertificateOutputReference | NetworkSecurityServerTlsPolicyServerCertificate): any;
export declare function networkSecurityServerTlsPolicyServerCertificateToHclTerraform(struct?: NetworkSecurityServerTlsPolicyServerCertificateOutputReference | NetworkSecurityServerTlsPolicyServerCertificate): any;
export declare class NetworkSecurityServerTlsPolicyServerCertificateOutputReference 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(): NetworkSecurityServerTlsPolicyServerCertificate | undefined;
    set internalValue(value: NetworkSecurityServerTlsPolicyServerCertificate | undefined);
    private _certificateProviderInstance;
    get certificateProviderInstance(): NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstanceOutputReference;
    putCertificateProviderInstance(value: NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstance): void;
    resetCertificateProviderInstance(): void;
    get certificateProviderInstanceInput(): NetworkSecurityServerTlsPolicyServerCertificateCertificateProviderInstance | undefined;
    private _grpcEndpoint;
    get grpcEndpoint(): NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpointOutputReference;
    putGrpcEndpoint(value: NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpoint): void;
    resetGrpcEndpoint(): void;
    get grpcEndpointInput(): NetworkSecurityServerTlsPolicyServerCertificateGrpcEndpoint | undefined;
}
export interface NetworkSecurityServerTlsPolicyTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#create NetworkSecurityServerTlsPolicy#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#delete NetworkSecurityServerTlsPolicy#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#update NetworkSecurityServerTlsPolicy#update}
    */
    readonly update?: string;
}
export declare function networkSecurityServerTlsPolicyTimeoutsToTerraform(struct?: NetworkSecurityServerTlsPolicyTimeouts | cdktf.IResolvable): any;
export declare function networkSecurityServerTlsPolicyTimeoutsToHclTerraform(struct?: NetworkSecurityServerTlsPolicyTimeouts | cdktf.IResolvable): any;
export declare class NetworkSecurityServerTlsPolicyTimeoutsOutputReference 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(): NetworkSecurityServerTlsPolicyTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityServerTlsPolicyTimeouts | 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/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy google_network_security_server_tls_policy}
*/
export declare class NetworkSecurityServerTlsPolicy extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_network_security_server_tls_policy";
    /**
    * Generates CDKTF code for importing a NetworkSecurityServerTlsPolicy 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 NetworkSecurityServerTlsPolicy to import
    * @param importFromId The id of the existing NetworkSecurityServerTlsPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the NetworkSecurityServerTlsPolicy 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/hashicorp/google/6.7.0/docs/resources/network_security_server_tls_policy google_network_security_server_tls_policy} 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 NetworkSecurityServerTlsPolicyConfig
    */
    constructor(scope: Construct, id: string, config: NetworkSecurityServerTlsPolicyConfig);
    private _allowOpen?;
    get allowOpen(): boolean | cdktf.IResolvable;
    set allowOpen(value: boolean | cdktf.IResolvable);
    resetAllowOpen(): void;
    get allowOpenInput(): boolean | cdktf.IResolvable | undefined;
    get createTime(): string;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    resetLocation(): void;
    get locationInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    get updateTime(): string;
    private _mtlsPolicy;
    get mtlsPolicy(): NetworkSecurityServerTlsPolicyMtlsPolicyOutputReference;
    putMtlsPolicy(value: NetworkSecurityServerTlsPolicyMtlsPolicy): void;
    resetMtlsPolicy(): void;
    get mtlsPolicyInput(): NetworkSecurityServerTlsPolicyMtlsPolicy | undefined;
    private _serverCertificate;
    get serverCertificate(): NetworkSecurityServerTlsPolicyServerCertificateOutputReference;
    putServerCertificate(value: NetworkSecurityServerTlsPolicyServerCertificate): void;
    resetServerCertificate(): void;
    get serverCertificateInput(): NetworkSecurityServerTlsPolicyServerCertificate | undefined;
    private _timeouts;
    get timeouts(): NetworkSecurityServerTlsPolicyTimeoutsOutputReference;
    putTimeouts(value: NetworkSecurityServerTlsPolicyTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | NetworkSecurityServerTlsPolicyTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
