/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface MemorystoreInstanceConfig extends cdktf.TerraformMetaArguments {
    /**
    * Optional. Immutable. Authorization mode of the instance. Possible values:
    *  AUTH_DISABLED
    * IAM_AUTH
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#authorization_mode MemorystoreInstance#authorization_mode}
    */
    readonly authorizationMode?: string;
    /**
    * Optional. If set to true deletion of the instance will fail.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#deletion_protection_enabled MemorystoreInstance#deletion_protection_enabled}
    */
    readonly deletionProtectionEnabled?: boolean | cdktf.IResolvable;
    /**
    * Optional. User-provided engine configurations for the instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#engine_configs MemorystoreInstance#engine_configs}
    */
    readonly engineConfigs?: {
        [key: string]: string;
    };
    /**
    * Optional. Engine version of the instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#engine_version MemorystoreInstance#engine_version}
    */
    readonly engineVersion?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#id MemorystoreInstance#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;
    /**
    * Required. The ID to use for the instance, which will become the final component of
    * the instance's resource name.
    *
    * This value is subject to the following restrictions:
    *
    * * Must be 4-63 characters in length
    * * Must begin with a letter or digit
    * * Must contain only lowercase letters, digits, and hyphens
    * * Must not end with a hyphen
    * * Must be unique within a location
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#instance_id MemorystoreInstance#instance_id}
    */
    readonly instanceId: string;
    /**
    * Optional. Labels to represent user-provided metadata.
    *
    * **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.36.0/docs/resources/memorystore_instance#labels MemorystoreInstance#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * Resource ID segment making up resource 'name'. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type 'memorystore.googleapis.com/CertificateAuthority'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#location MemorystoreInstance#location}
    */
    readonly location: string;
    /**
    * Optional. cluster or cluster-disabled.
    *  Possible values:
    *  CLUSTER
    *  CLUSTER_DISABLED Possible values: ["CLUSTER", "CLUSTER_DISABLED"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#mode MemorystoreInstance#mode}
    */
    readonly mode?: string;
    /**
    * Optional. Machine type for individual nodes of the instance.
    *  Possible values:
    *  SHARED_CORE_NANO
    * HIGHMEM_MEDIUM
    * HIGHMEM_XLARGE
    * STANDARD_SMALL
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#node_type MemorystoreInstance#node_type}
    */
    readonly nodeType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#project MemorystoreInstance#project}
    */
    readonly project?: string;
    /**
    * Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#replica_count MemorystoreInstance#replica_count}
    */
    readonly replicaCount?: number;
    /**
    * Required. Number of shards for the instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#shard_count MemorystoreInstance#shard_count}
    */
    readonly shardCount: number;
    /**
    * Optional. Immutable. In-transit encryption mode of the instance.
    *  Possible values:
    *  TRANSIT_ENCRYPTION_DISABLED
    * SERVER_AUTHENTICATION
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#transit_encryption_mode MemorystoreInstance#transit_encryption_mode}
    */
    readonly transitEncryptionMode?: string;
    /**
    * automated_backup_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#automated_backup_config MemorystoreInstance#automated_backup_config}
    */
    readonly automatedBackupConfig?: MemorystoreInstanceAutomatedBackupConfig;
    /**
    * cross_instance_replication_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#cross_instance_replication_config MemorystoreInstance#cross_instance_replication_config}
    */
    readonly crossInstanceReplicationConfig?: MemorystoreInstanceCrossInstanceReplicationConfig;
    /**
    * desired_psc_auto_connections block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#desired_psc_auto_connections MemorystoreInstance#desired_psc_auto_connections}
    */
    readonly desiredPscAutoConnections?: MemorystoreInstanceDesiredPscAutoConnections[] | cdktf.IResolvable;
    /**
    * gcs_source block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#gcs_source MemorystoreInstance#gcs_source}
    */
    readonly gcsSource?: MemorystoreInstanceGcsSource;
    /**
    * maintenance_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#maintenance_policy MemorystoreInstance#maintenance_policy}
    */
    readonly maintenancePolicy?: MemorystoreInstanceMaintenancePolicy;
    /**
    * managed_backup_source block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#managed_backup_source MemorystoreInstance#managed_backup_source}
    */
    readonly managedBackupSource?: MemorystoreInstanceManagedBackupSource;
    /**
    * persistence_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#persistence_config MemorystoreInstance#persistence_config}
    */
    readonly persistenceConfig?: MemorystoreInstancePersistenceConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#timeouts MemorystoreInstance#timeouts}
    */
    readonly timeouts?: MemorystoreInstanceTimeouts;
    /**
    * zone_distribution_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#zone_distribution_config MemorystoreInstance#zone_distribution_config}
    */
    readonly zoneDistributionConfig?: MemorystoreInstanceZoneDistributionConfig;
}
export interface MemorystoreInstanceDiscoveryEndpoints {
}
export declare function memorystoreInstanceDiscoveryEndpointsToTerraform(struct?: MemorystoreInstanceDiscoveryEndpoints): any;
export declare function memorystoreInstanceDiscoveryEndpointsToHclTerraform(struct?: MemorystoreInstanceDiscoveryEndpoints): any;
export declare class MemorystoreInstanceDiscoveryEndpointsOutputReference 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(): MemorystoreInstanceDiscoveryEndpoints | undefined;
    set internalValue(value: MemorystoreInstanceDiscoveryEndpoints | undefined);
    get address(): string;
    get network(): string;
    get port(): number;
}
export declare class MemorystoreInstanceDiscoveryEndpointsList 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): MemorystoreInstanceDiscoveryEndpointsOutputReference;
}
export interface MemorystoreInstanceEndpointsConnectionsPscAutoConnection {
}
export declare function memorystoreInstanceEndpointsConnectionsPscAutoConnectionToTerraform(struct?: MemorystoreInstanceEndpointsConnectionsPscAutoConnection): any;
export declare function memorystoreInstanceEndpointsConnectionsPscAutoConnectionToHclTerraform(struct?: MemorystoreInstanceEndpointsConnectionsPscAutoConnection): any;
export declare class MemorystoreInstanceEndpointsConnectionsPscAutoConnectionOutputReference 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(): MemorystoreInstanceEndpointsConnectionsPscAutoConnection | undefined;
    set internalValue(value: MemorystoreInstanceEndpointsConnectionsPscAutoConnection | undefined);
    get connectionType(): string;
    get forwardingRule(): string;
    get ipAddress(): string;
    get network(): string;
    get port(): number;
    get projectId(): string;
    get pscConnectionId(): string;
    get serviceAttachment(): string;
}
export declare class MemorystoreInstanceEndpointsConnectionsPscAutoConnectionList 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): MemorystoreInstanceEndpointsConnectionsPscAutoConnectionOutputReference;
}
export interface MemorystoreInstanceEndpointsConnections {
}
export declare function memorystoreInstanceEndpointsConnectionsToTerraform(struct?: MemorystoreInstanceEndpointsConnections): any;
export declare function memorystoreInstanceEndpointsConnectionsToHclTerraform(struct?: MemorystoreInstanceEndpointsConnections): any;
export declare class MemorystoreInstanceEndpointsConnectionsOutputReference 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(): MemorystoreInstanceEndpointsConnections | undefined;
    set internalValue(value: MemorystoreInstanceEndpointsConnections | undefined);
    private _pscAutoConnection;
    get pscAutoConnection(): MemorystoreInstanceEndpointsConnectionsPscAutoConnectionList;
}
export declare class MemorystoreInstanceEndpointsConnectionsList 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): MemorystoreInstanceEndpointsConnectionsOutputReference;
}
export interface MemorystoreInstanceEndpoints {
}
export declare function memorystoreInstanceEndpointsToTerraform(struct?: MemorystoreInstanceEndpoints): any;
export declare function memorystoreInstanceEndpointsToHclTerraform(struct?: MemorystoreInstanceEndpoints): any;
export declare class MemorystoreInstanceEndpointsOutputReference 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(): MemorystoreInstanceEndpoints | undefined;
    set internalValue(value: MemorystoreInstanceEndpoints | undefined);
    private _connections;
    get connections(): MemorystoreInstanceEndpointsConnectionsList;
}
export declare class MemorystoreInstanceEndpointsList 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): MemorystoreInstanceEndpointsOutputReference;
}
export interface MemorystoreInstanceMaintenanceSchedule {
}
export declare function memorystoreInstanceMaintenanceScheduleToTerraform(struct?: MemorystoreInstanceMaintenanceSchedule): any;
export declare function memorystoreInstanceMaintenanceScheduleToHclTerraform(struct?: MemorystoreInstanceMaintenanceSchedule): any;
export declare class MemorystoreInstanceMaintenanceScheduleOutputReference 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(): MemorystoreInstanceMaintenanceSchedule | undefined;
    set internalValue(value: MemorystoreInstanceMaintenanceSchedule | undefined);
    get endTime(): string;
    get scheduleDeadlineTime(): string;
    get startTime(): string;
}
export declare class MemorystoreInstanceMaintenanceScheduleList 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): MemorystoreInstanceMaintenanceScheduleOutputReference;
}
export interface MemorystoreInstanceNodeConfig {
}
export declare function memorystoreInstanceNodeConfigToTerraform(struct?: MemorystoreInstanceNodeConfig): any;
export declare function memorystoreInstanceNodeConfigToHclTerraform(struct?: MemorystoreInstanceNodeConfig): any;
export declare class MemorystoreInstanceNodeConfigOutputReference 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(): MemorystoreInstanceNodeConfig | undefined;
    set internalValue(value: MemorystoreInstanceNodeConfig | undefined);
    get sizeGb(): number;
}
export declare class MemorystoreInstanceNodeConfigList 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): MemorystoreInstanceNodeConfigOutputReference;
}
export interface MemorystoreInstancePscAttachmentDetails {
}
export declare function memorystoreInstancePscAttachmentDetailsToTerraform(struct?: MemorystoreInstancePscAttachmentDetails): any;
export declare function memorystoreInstancePscAttachmentDetailsToHclTerraform(struct?: MemorystoreInstancePscAttachmentDetails): any;
export declare class MemorystoreInstancePscAttachmentDetailsOutputReference 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(): MemorystoreInstancePscAttachmentDetails | undefined;
    set internalValue(value: MemorystoreInstancePscAttachmentDetails | undefined);
    get connectionType(): string;
    get serviceAttachment(): string;
}
export declare class MemorystoreInstancePscAttachmentDetailsList 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): MemorystoreInstancePscAttachmentDetailsOutputReference;
}
export interface MemorystoreInstancePscAutoConnections {
}
export declare function memorystoreInstancePscAutoConnectionsToTerraform(struct?: MemorystoreInstancePscAutoConnections): any;
export declare function memorystoreInstancePscAutoConnectionsToHclTerraform(struct?: MemorystoreInstancePscAutoConnections): any;
export declare class MemorystoreInstancePscAutoConnectionsOutputReference 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(): MemorystoreInstancePscAutoConnections | undefined;
    set internalValue(value: MemorystoreInstancePscAutoConnections | undefined);
    get connectionType(): string;
    get forwardingRule(): string;
    get ipAddress(): string;
    get network(): string;
    get port(): number;
    get projectId(): string;
    get pscConnectionId(): string;
    get pscConnectionStatus(): string;
    get serviceAttachment(): string;
}
export declare class MemorystoreInstancePscAutoConnectionsList 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): MemorystoreInstancePscAutoConnectionsOutputReference;
}
export interface MemorystoreInstanceStateInfoUpdateInfo {
}
export declare function memorystoreInstanceStateInfoUpdateInfoToTerraform(struct?: MemorystoreInstanceStateInfoUpdateInfo): any;
export declare function memorystoreInstanceStateInfoUpdateInfoToHclTerraform(struct?: MemorystoreInstanceStateInfoUpdateInfo): any;
export declare class MemorystoreInstanceStateInfoUpdateInfoOutputReference 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(): MemorystoreInstanceStateInfoUpdateInfo | undefined;
    set internalValue(value: MemorystoreInstanceStateInfoUpdateInfo | undefined);
    get targetEngineVersion(): string;
    get targetNodeType(): string;
    get targetReplicaCount(): number;
    get targetShardCount(): number;
}
export declare class MemorystoreInstanceStateInfoUpdateInfoList 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): MemorystoreInstanceStateInfoUpdateInfoOutputReference;
}
export interface MemorystoreInstanceStateInfo {
}
export declare function memorystoreInstanceStateInfoToTerraform(struct?: MemorystoreInstanceStateInfo): any;
export declare function memorystoreInstanceStateInfoToHclTerraform(struct?: MemorystoreInstanceStateInfo): any;
export declare class MemorystoreInstanceStateInfoOutputReference 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(): MemorystoreInstanceStateInfo | undefined;
    set internalValue(value: MemorystoreInstanceStateInfo | undefined);
    private _updateInfo;
    get updateInfo(): MemorystoreInstanceStateInfoUpdateInfoList;
}
export declare class MemorystoreInstanceStateInfoList 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): MemorystoreInstanceStateInfoOutputReference;
}
export interface MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTime {
    /**
    * Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23.
    * An API may choose to allow the value "24:00:00" for scenarios like business closing time.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#hours MemorystoreInstance#hours}
    */
    readonly hours: number;
}
export declare function memorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTimeToTerraform(struct?: MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTimeOutputReference | MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTime): any;
export declare function memorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTimeToHclTerraform(struct?: MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTimeOutputReference | MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTime): any;
export declare class MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTimeOutputReference 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(): MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTime | undefined;
    set internalValue(value: MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTime | undefined);
    private _hours?;
    get hours(): number;
    set hours(value: number);
    get hoursInput(): number | undefined;
}
export interface MemorystoreInstanceAutomatedBackupConfigFixedFrequencySchedule {
    /**
    * start_time block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#start_time MemorystoreInstance#start_time}
    */
    readonly startTime: MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTime;
}
export declare function memorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleToTerraform(struct?: MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleOutputReference | MemorystoreInstanceAutomatedBackupConfigFixedFrequencySchedule): any;
export declare function memorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleToHclTerraform(struct?: MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleOutputReference | MemorystoreInstanceAutomatedBackupConfigFixedFrequencySchedule): any;
export declare class MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleOutputReference 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(): MemorystoreInstanceAutomatedBackupConfigFixedFrequencySchedule | undefined;
    set internalValue(value: MemorystoreInstanceAutomatedBackupConfigFixedFrequencySchedule | undefined);
    private _startTime;
    get startTime(): MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTimeOutputReference;
    putStartTime(value: MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTime): void;
    get startTimeInput(): MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleStartTime | undefined;
}
export interface MemorystoreInstanceAutomatedBackupConfig {
    /**
    * How long to keep automated backups before the backups are deleted.
    * The value should be between 1 day and 365 days. If not specified, the default value is 35 days.
    * A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s". The default_value is "3024000s"
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#retention MemorystoreInstance#retention}
    */
    readonly retention: string;
    /**
    * fixed_frequency_schedule block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#fixed_frequency_schedule MemorystoreInstance#fixed_frequency_schedule}
    */
    readonly fixedFrequencySchedule: MemorystoreInstanceAutomatedBackupConfigFixedFrequencySchedule;
}
export declare function memorystoreInstanceAutomatedBackupConfigToTerraform(struct?: MemorystoreInstanceAutomatedBackupConfigOutputReference | MemorystoreInstanceAutomatedBackupConfig): any;
export declare function memorystoreInstanceAutomatedBackupConfigToHclTerraform(struct?: MemorystoreInstanceAutomatedBackupConfigOutputReference | MemorystoreInstanceAutomatedBackupConfig): any;
export declare class MemorystoreInstanceAutomatedBackupConfigOutputReference 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(): MemorystoreInstanceAutomatedBackupConfig | undefined;
    set internalValue(value: MemorystoreInstanceAutomatedBackupConfig | undefined);
    private _retention?;
    get retention(): string;
    set retention(value: string);
    get retentionInput(): string | undefined;
    private _fixedFrequencySchedule;
    get fixedFrequencySchedule(): MemorystoreInstanceAutomatedBackupConfigFixedFrequencyScheduleOutputReference;
    putFixedFrequencySchedule(value: MemorystoreInstanceAutomatedBackupConfigFixedFrequencySchedule): void;
    get fixedFrequencyScheduleInput(): MemorystoreInstanceAutomatedBackupConfigFixedFrequencySchedule | undefined;
}
export interface MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstance {
}
export declare function memorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceToTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstance): any;
export declare function memorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceToHclTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstance): any;
export declare class MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceOutputReference 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(): MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstance | undefined;
    set internalValue(value: MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstance | undefined);
    get instance(): string;
    get uid(): string;
}
export declare class MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceList 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): MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceOutputReference;
}
export interface MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstance {
}
export declare function memorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceToTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstance): any;
export declare function memorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceToHclTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstance): any;
export declare class MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceOutputReference 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(): MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstance | undefined;
    set internalValue(value: MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstance | undefined);
    get instance(): string;
    get uid(): string;
}
export declare class MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceList 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): MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceOutputReference;
}
export interface MemorystoreInstanceCrossInstanceReplicationConfigMembership {
}
export declare function memorystoreInstanceCrossInstanceReplicationConfigMembershipToTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigMembership): any;
export declare function memorystoreInstanceCrossInstanceReplicationConfigMembershipToHclTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigMembership): any;
export declare class MemorystoreInstanceCrossInstanceReplicationConfigMembershipOutputReference 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(): MemorystoreInstanceCrossInstanceReplicationConfigMembership | undefined;
    set internalValue(value: MemorystoreInstanceCrossInstanceReplicationConfigMembership | undefined);
    private _primaryInstance;
    get primaryInstance(): MemorystoreInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceList;
    private _secondaryInstance;
    get secondaryInstance(): MemorystoreInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceList;
}
export declare class MemorystoreInstanceCrossInstanceReplicationConfigMembershipList 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): MemorystoreInstanceCrossInstanceReplicationConfigMembershipOutputReference;
}
export interface MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstance {
    /**
    * The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#instance MemorystoreInstance#instance}
    */
    readonly instance?: string;
}
export declare function memorystoreInstanceCrossInstanceReplicationConfigPrimaryInstanceToTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstanceOutputReference | MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstance): any;
export declare function memorystoreInstanceCrossInstanceReplicationConfigPrimaryInstanceToHclTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstanceOutputReference | MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstance): any;
export declare class MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstanceOutputReference 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(): MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstance | undefined;
    set internalValue(value: MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstance | undefined);
    private _instance?;
    get instance(): string;
    set instance(value: string);
    resetInstance(): void;
    get instanceInput(): string | undefined;
    get uid(): string;
}
export interface MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances {
    /**
    * The full resource path of the Nth instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#instance MemorystoreInstance#instance}
    */
    readonly instance?: string;
}
export declare function memorystoreInstanceCrossInstanceReplicationConfigSecondaryInstancesToTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances | cdktf.IResolvable): any;
export declare function memorystoreInstanceCrossInstanceReplicationConfigSecondaryInstancesToHclTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances | cdktf.IResolvable): any;
export declare class MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstancesOutputReference 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(): MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances | cdktf.IResolvable | undefined;
    set internalValue(value: MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances | cdktf.IResolvable | undefined);
    private _instance?;
    get instance(): string;
    set instance(value: string);
    resetInstance(): void;
    get instanceInput(): string | undefined;
    get uid(): string;
}
export declare class MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstancesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances[] | 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): MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstancesOutputReference;
}
export interface MemorystoreInstanceCrossInstanceReplicationConfig {
    /**
    * The instance role supports the following values:
    * 1. 'INSTANCE_ROLE_UNSPECIFIED': This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
    * 2. 'NONE': This is an independent instance that previously participated in cross instance replication(either as a 'PRIMARY' or 'SECONDARY' cluster). It allows both reads and writes.
    * 3. 'PRIMARY': This instance serves as the replication source for secondary instance that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
    * 4. 'SECONDARY': This instance replicates data from the primary instance. It allows only reads. Possible values: ["INSTANCE_ROLE_UNSPECIFIED", "NONE", "PRIMARY", "SECONDARY"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#instance_role MemorystoreInstance#instance_role}
    */
    readonly instanceRole?: string;
    /**
    * primary_instance block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#primary_instance MemorystoreInstance#primary_instance}
    */
    readonly primaryInstance?: MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstance;
    /**
    * secondary_instances block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#secondary_instances MemorystoreInstance#secondary_instances}
    */
    readonly secondaryInstances?: MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances[] | cdktf.IResolvable;
}
export declare function memorystoreInstanceCrossInstanceReplicationConfigToTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigOutputReference | MemorystoreInstanceCrossInstanceReplicationConfig): any;
export declare function memorystoreInstanceCrossInstanceReplicationConfigToHclTerraform(struct?: MemorystoreInstanceCrossInstanceReplicationConfigOutputReference | MemorystoreInstanceCrossInstanceReplicationConfig): any;
export declare class MemorystoreInstanceCrossInstanceReplicationConfigOutputReference 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(): MemorystoreInstanceCrossInstanceReplicationConfig | undefined;
    set internalValue(value: MemorystoreInstanceCrossInstanceReplicationConfig | undefined);
    private _instanceRole?;
    get instanceRole(): string;
    set instanceRole(value: string);
    resetInstanceRole(): void;
    get instanceRoleInput(): string | undefined;
    private _membership;
    get membership(): MemorystoreInstanceCrossInstanceReplicationConfigMembershipList;
    get updateTime(): string;
    private _primaryInstance;
    get primaryInstance(): MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstanceOutputReference;
    putPrimaryInstance(value: MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstance): void;
    resetPrimaryInstance(): void;
    get primaryInstanceInput(): MemorystoreInstanceCrossInstanceReplicationConfigPrimaryInstance | undefined;
    private _secondaryInstances;
    get secondaryInstances(): MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstancesList;
    putSecondaryInstances(value: MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances[] | cdktf.IResolvable): void;
    resetSecondaryInstances(): void;
    get secondaryInstancesInput(): cdktf.IResolvable | MemorystoreInstanceCrossInstanceReplicationConfigSecondaryInstances[] | undefined;
}
export interface MemorystoreInstanceDesiredPscAutoConnections {
    /**
    * Required. The consumer network where the IP address resides, in the form of
    * projects/{project_id}/global/networks/{network_id}.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#network MemorystoreInstance#network}
    */
    readonly network: string;
    /**
    * Required. The consumer project_id where the forwarding rule is created from.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#project_id MemorystoreInstance#project_id}
    */
    readonly projectId: string;
}
export declare function memorystoreInstanceDesiredPscAutoConnectionsToTerraform(struct?: MemorystoreInstanceDesiredPscAutoConnections | cdktf.IResolvable): any;
export declare function memorystoreInstanceDesiredPscAutoConnectionsToHclTerraform(struct?: MemorystoreInstanceDesiredPscAutoConnections | cdktf.IResolvable): any;
export declare class MemorystoreInstanceDesiredPscAutoConnectionsOutputReference 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(): MemorystoreInstanceDesiredPscAutoConnections | cdktf.IResolvable | undefined;
    set internalValue(value: MemorystoreInstanceDesiredPscAutoConnections | cdktf.IResolvable | undefined);
    private _network?;
    get network(): string;
    set network(value: string);
    get networkInput(): string | undefined;
    private _projectId?;
    get projectId(): string;
    set projectId(value: string);
    get projectIdInput(): string | undefined;
}
export declare class MemorystoreInstanceDesiredPscAutoConnectionsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: MemorystoreInstanceDesiredPscAutoConnections[] | 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): MemorystoreInstanceDesiredPscAutoConnectionsOutputReference;
}
export interface MemorystoreInstanceGcsSource {
    /**
    * URIs of the GCS objects to import.
    * Example: gs://bucket1/object1, gs//bucket2/folder2/object2
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#uris MemorystoreInstance#uris}
    */
    readonly uris: string[];
}
export declare function memorystoreInstanceGcsSourceToTerraform(struct?: MemorystoreInstanceGcsSourceOutputReference | MemorystoreInstanceGcsSource): any;
export declare function memorystoreInstanceGcsSourceToHclTerraform(struct?: MemorystoreInstanceGcsSourceOutputReference | MemorystoreInstanceGcsSource): any;
export declare class MemorystoreInstanceGcsSourceOutputReference 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(): MemorystoreInstanceGcsSource | undefined;
    set internalValue(value: MemorystoreInstanceGcsSource | undefined);
    private _uris?;
    get uris(): string[];
    set uris(value: string[]);
    get urisInput(): string[] | undefined;
}
export interface MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime {
    /**
    * Hours of day in 24 hour format. Should be from 0 to 23.
    * An API may choose to allow the value "24:00:00" for scenarios like business closing time.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#hours MemorystoreInstance#hours}
    */
    readonly hours?: number;
    /**
    * Minutes of hour of day. Must be from 0 to 59.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#minutes MemorystoreInstance#minutes}
    */
    readonly minutes?: number;
    /**
    * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#nanos MemorystoreInstance#nanos}
    */
    readonly nanos?: number;
    /**
    * Seconds of minutes of the time. Must normally be from 0 to 59.
    * An API may allow the value 60 if it allows leap-seconds.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#seconds MemorystoreInstance#seconds}
    */
    readonly seconds?: number;
}
export declare function memorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeToTerraform(struct?: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeOutputReference | MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime): any;
export declare function memorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeToHclTerraform(struct?: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeOutputReference | MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime): any;
export declare class MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeOutputReference 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(): MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime | undefined;
    set internalValue(value: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime | undefined);
    private _hours?;
    get hours(): number;
    set hours(value: number);
    resetHours(): void;
    get hoursInput(): number | undefined;
    private _minutes?;
    get minutes(): number;
    set minutes(value: number);
    resetMinutes(): void;
    get minutesInput(): number | undefined;
    private _nanos?;
    get nanos(): number;
    set nanos(value: number);
    resetNanos(): void;
    get nanosInput(): number | undefined;
    private _seconds?;
    get seconds(): number;
    set seconds(value: number);
    resetSeconds(): void;
    get secondsInput(): number | undefined;
}
export interface MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow {
    /**
    * The day of week that maintenance updates occur.
    *
    * - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
    * - MONDAY: Monday
    * - TUESDAY: Tuesday
    * - WEDNESDAY: Wednesday
    * - THURSDAY: Thursday
    * - FRIDAY: Friday
    * - SATURDAY: Saturday
    * - SUNDAY: Sunday Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#day MemorystoreInstance#day}
    */
    readonly day: string;
    /**
    * start_time block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#start_time MemorystoreInstance#start_time}
    */
    readonly startTime: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime;
}
export declare function memorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowToTerraform(struct?: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow | cdktf.IResolvable): any;
export declare function memorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowToHclTerraform(struct?: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow | cdktf.IResolvable): any;
export declare class MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowOutputReference 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(): MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow | cdktf.IResolvable | undefined;
    set internalValue(value: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow | cdktf.IResolvable | undefined);
    private _day?;
    get day(): string;
    set day(value: string);
    get dayInput(): string | undefined;
    get duration(): string;
    private _startTime;
    get startTime(): MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeOutputReference;
    putStartTime(value: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime): void;
    get startTimeInput(): MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime | undefined;
}
export declare class MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow[] | 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): MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowOutputReference;
}
export interface MemorystoreInstanceMaintenancePolicy {
    /**
    * weekly_maintenance_window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#weekly_maintenance_window MemorystoreInstance#weekly_maintenance_window}
    */
    readonly weeklyMaintenanceWindow?: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow[] | cdktf.IResolvable;
}
export declare function memorystoreInstanceMaintenancePolicyToTerraform(struct?: MemorystoreInstanceMaintenancePolicyOutputReference | MemorystoreInstanceMaintenancePolicy): any;
export declare function memorystoreInstanceMaintenancePolicyToHclTerraform(struct?: MemorystoreInstanceMaintenancePolicyOutputReference | MemorystoreInstanceMaintenancePolicy): any;
export declare class MemorystoreInstanceMaintenancePolicyOutputReference 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(): MemorystoreInstanceMaintenancePolicy | undefined;
    set internalValue(value: MemorystoreInstanceMaintenancePolicy | undefined);
    get createTime(): string;
    get updateTime(): string;
    private _weeklyMaintenanceWindow;
    get weeklyMaintenanceWindow(): MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindowList;
    putWeeklyMaintenanceWindow(value: MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow[] | cdktf.IResolvable): void;
    resetWeeklyMaintenanceWindow(): void;
    get weeklyMaintenanceWindowInput(): cdktf.IResolvable | MemorystoreInstanceMaintenancePolicyWeeklyMaintenanceWindow[] | undefined;
}
export interface MemorystoreInstanceManagedBackupSource {
    /**
    * Example: //memorystore.googleapis.com/projects/{project}/locations/{location}/backups/{backupId}. In this case, it assumes the backup is under memorystore.googleapis.com.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#backup MemorystoreInstance#backup}
    */
    readonly backup: string;
}
export declare function memorystoreInstanceManagedBackupSourceToTerraform(struct?: MemorystoreInstanceManagedBackupSourceOutputReference | MemorystoreInstanceManagedBackupSource): any;
export declare function memorystoreInstanceManagedBackupSourceToHclTerraform(struct?: MemorystoreInstanceManagedBackupSourceOutputReference | MemorystoreInstanceManagedBackupSource): any;
export declare class MemorystoreInstanceManagedBackupSourceOutputReference 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(): MemorystoreInstanceManagedBackupSource | undefined;
    set internalValue(value: MemorystoreInstanceManagedBackupSource | undefined);
    private _backup?;
    get backup(): string;
    set backup(value: string);
    get backupInput(): string | undefined;
}
export interface MemorystoreInstancePersistenceConfigAofConfig {
    /**
    * Optional. The fsync mode.
    *  Possible values:
    *  NEVER
    * EVERY_SEC
    * ALWAYS
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#append_fsync MemorystoreInstance#append_fsync}
    */
    readonly appendFsync?: string;
}
export declare function memorystoreInstancePersistenceConfigAofConfigToTerraform(struct?: MemorystoreInstancePersistenceConfigAofConfigOutputReference | MemorystoreInstancePersistenceConfigAofConfig): any;
export declare function memorystoreInstancePersistenceConfigAofConfigToHclTerraform(struct?: MemorystoreInstancePersistenceConfigAofConfigOutputReference | MemorystoreInstancePersistenceConfigAofConfig): any;
export declare class MemorystoreInstancePersistenceConfigAofConfigOutputReference 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(): MemorystoreInstancePersistenceConfigAofConfig | undefined;
    set internalValue(value: MemorystoreInstancePersistenceConfigAofConfig | undefined);
    private _appendFsync?;
    get appendFsync(): string;
    set appendFsync(value: string);
    resetAppendFsync(): void;
    get appendFsyncInput(): string | undefined;
}
export interface MemorystoreInstancePersistenceConfigRdbConfig {
    /**
    * Optional. Period between RDB snapshots.
    *  Possible values:
    *  ONE_HOUR
    * SIX_HOURS
    * TWELVE_HOURS
    * TWENTY_FOUR_HOURS
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#rdb_snapshot_period MemorystoreInstance#rdb_snapshot_period}
    */
    readonly rdbSnapshotPeriod?: string;
    /**
    * Optional. Time that the first snapshot was/will be attempted, and to which future
    * snapshots will be aligned. If not provided, the current time will be
    * used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#rdb_snapshot_start_time MemorystoreInstance#rdb_snapshot_start_time}
    */
    readonly rdbSnapshotStartTime?: string;
}
export declare function memorystoreInstancePersistenceConfigRdbConfigToTerraform(struct?: MemorystoreInstancePersistenceConfigRdbConfigOutputReference | MemorystoreInstancePersistenceConfigRdbConfig): any;
export declare function memorystoreInstancePersistenceConfigRdbConfigToHclTerraform(struct?: MemorystoreInstancePersistenceConfigRdbConfigOutputReference | MemorystoreInstancePersistenceConfigRdbConfig): any;
export declare class MemorystoreInstancePersistenceConfigRdbConfigOutputReference 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(): MemorystoreInstancePersistenceConfigRdbConfig | undefined;
    set internalValue(value: MemorystoreInstancePersistenceConfigRdbConfig | undefined);
    private _rdbSnapshotPeriod?;
    get rdbSnapshotPeriod(): string;
    set rdbSnapshotPeriod(value: string);
    resetRdbSnapshotPeriod(): void;
    get rdbSnapshotPeriodInput(): string | undefined;
    private _rdbSnapshotStartTime?;
    get rdbSnapshotStartTime(): string;
    set rdbSnapshotStartTime(value: string);
    resetRdbSnapshotStartTime(): void;
    get rdbSnapshotStartTimeInput(): string | undefined;
}
export interface MemorystoreInstancePersistenceConfig {
    /**
    * Optional. Current persistence mode.
    *  Possible values:
    * DISABLED
    * RDB
    * AOF Possible values: ["DISABLED", "RDB", "AOF"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#mode MemorystoreInstance#mode}
    */
    readonly mode?: string;
    /**
    * aof_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#aof_config MemorystoreInstance#aof_config}
    */
    readonly aofConfig?: MemorystoreInstancePersistenceConfigAofConfig;
    /**
    * rdb_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#rdb_config MemorystoreInstance#rdb_config}
    */
    readonly rdbConfig?: MemorystoreInstancePersistenceConfigRdbConfig;
}
export declare function memorystoreInstancePersistenceConfigToTerraform(struct?: MemorystoreInstancePersistenceConfigOutputReference | MemorystoreInstancePersistenceConfig): any;
export declare function memorystoreInstancePersistenceConfigToHclTerraform(struct?: MemorystoreInstancePersistenceConfigOutputReference | MemorystoreInstancePersistenceConfig): any;
export declare class MemorystoreInstancePersistenceConfigOutputReference 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(): MemorystoreInstancePersistenceConfig | undefined;
    set internalValue(value: MemorystoreInstancePersistenceConfig | undefined);
    private _mode?;
    get mode(): string;
    set mode(value: string);
    resetMode(): void;
    get modeInput(): string | undefined;
    private _aofConfig;
    get aofConfig(): MemorystoreInstancePersistenceConfigAofConfigOutputReference;
    putAofConfig(value: MemorystoreInstancePersistenceConfigAofConfig): void;
    resetAofConfig(): void;
    get aofConfigInput(): MemorystoreInstancePersistenceConfigAofConfig | undefined;
    private _rdbConfig;
    get rdbConfig(): MemorystoreInstancePersistenceConfigRdbConfigOutputReference;
    putRdbConfig(value: MemorystoreInstancePersistenceConfigRdbConfig): void;
    resetRdbConfig(): void;
    get rdbConfigInput(): MemorystoreInstancePersistenceConfigRdbConfig | undefined;
}
export interface MemorystoreInstanceTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#create MemorystoreInstance#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#delete MemorystoreInstance#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#update MemorystoreInstance#update}
    */
    readonly update?: string;
}
export declare function memorystoreInstanceTimeoutsToTerraform(struct?: MemorystoreInstanceTimeouts | cdktf.IResolvable): any;
export declare function memorystoreInstanceTimeoutsToHclTerraform(struct?: MemorystoreInstanceTimeouts | cdktf.IResolvable): any;
export declare class MemorystoreInstanceTimeoutsOutputReference 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(): MemorystoreInstanceTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: MemorystoreInstanceTimeouts | 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;
}
export interface MemorystoreInstanceZoneDistributionConfig {
    /**
    * Optional. Current zone distribution mode. Defaults to MULTI_ZONE.
    *  Possible values:
    *  MULTI_ZONE
    * SINGLE_ZONE Possible values: ["MULTI_ZONE", "SINGLE_ZONE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#mode MemorystoreInstance#mode}
    */
    readonly mode?: string;
    /**
    * Optional. Defines zone where all resources will be allocated with SINGLE_ZONE mode.
    * Ignored for MULTI_ZONE mode.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#zone MemorystoreInstance#zone}
    */
    readonly zone?: string;
}
export declare function memorystoreInstanceZoneDistributionConfigToTerraform(struct?: MemorystoreInstanceZoneDistributionConfigOutputReference | MemorystoreInstanceZoneDistributionConfig): any;
export declare function memorystoreInstanceZoneDistributionConfigToHclTerraform(struct?: MemorystoreInstanceZoneDistributionConfigOutputReference | MemorystoreInstanceZoneDistributionConfig): any;
export declare class MemorystoreInstanceZoneDistributionConfigOutputReference 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(): MemorystoreInstanceZoneDistributionConfig | undefined;
    set internalValue(value: MemorystoreInstanceZoneDistributionConfig | undefined);
    private _mode?;
    get mode(): string;
    set mode(value: string);
    resetMode(): void;
    get modeInput(): string | undefined;
    private _zone?;
    get zone(): string;
    set zone(value: string);
    resetZone(): void;
    get zoneInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance google_memorystore_instance}
*/
export declare class MemorystoreInstance extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_memorystore_instance";
    /**
    * Generates CDKTF code for importing a MemorystoreInstance 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 MemorystoreInstance to import
    * @param importFromId The id of the existing MemorystoreInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/memorystore_instance#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the MemorystoreInstance 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.36.0/docs/resources/memorystore_instance google_memorystore_instance} 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 MemorystoreInstanceConfig
    */
    constructor(scope: Construct, id: string, config: MemorystoreInstanceConfig);
    private _authorizationMode?;
    get authorizationMode(): string;
    set authorizationMode(value: string);
    resetAuthorizationMode(): void;
    get authorizationModeInput(): string | undefined;
    get backupCollection(): string;
    get createTime(): string;
    private _deletionProtectionEnabled?;
    get deletionProtectionEnabled(): boolean | cdktf.IResolvable;
    set deletionProtectionEnabled(value: boolean | cdktf.IResolvable);
    resetDeletionProtectionEnabled(): void;
    get deletionProtectionEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _discoveryEndpoints;
    get discoveryEndpoints(): MemorystoreInstanceDiscoveryEndpointsList;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    private _endpoints;
    get endpoints(): MemorystoreInstanceEndpointsList;
    private _engineConfigs?;
    get engineConfigs(): {
        [key: string]: string;
    };
    set engineConfigs(value: {
        [key: string]: string;
    });
    resetEngineConfigs(): void;
    get engineConfigsInput(): {
        [key: string]: string;
    } | undefined;
    private _engineVersion?;
    get engineVersion(): string;
    set engineVersion(value: string);
    resetEngineVersion(): void;
    get engineVersionInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _instanceId?;
    get instanceId(): string;
    set instanceId(value: string);
    get instanceIdInput(): 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);
    get locationInput(): string | undefined;
    private _maintenanceSchedule;
    get maintenanceSchedule(): MemorystoreInstanceMaintenanceScheduleList;
    private _mode?;
    get mode(): string;
    set mode(value: string);
    resetMode(): void;
    get modeInput(): string | undefined;
    get name(): string;
    private _nodeConfig;
    get nodeConfig(): MemorystoreInstanceNodeConfigList;
    private _nodeType?;
    get nodeType(): string;
    set nodeType(value: string);
    resetNodeType(): void;
    get nodeTypeInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _pscAttachmentDetails;
    get pscAttachmentDetails(): MemorystoreInstancePscAttachmentDetailsList;
    private _pscAutoConnections;
    get pscAutoConnections(): MemorystoreInstancePscAutoConnectionsList;
    private _replicaCount?;
    get replicaCount(): number;
    set replicaCount(value: number);
    resetReplicaCount(): void;
    get replicaCountInput(): number | undefined;
    private _shardCount?;
    get shardCount(): number;
    set shardCount(value: number);
    get shardCountInput(): number | undefined;
    get state(): string;
    private _stateInfo;
    get stateInfo(): MemorystoreInstanceStateInfoList;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    private _transitEncryptionMode?;
    get transitEncryptionMode(): string;
    set transitEncryptionMode(value: string);
    resetTransitEncryptionMode(): void;
    get transitEncryptionModeInput(): string | undefined;
    get uid(): string;
    get updateTime(): string;
    private _automatedBackupConfig;
    get automatedBackupConfig(): MemorystoreInstanceAutomatedBackupConfigOutputReference;
    putAutomatedBackupConfig(value: MemorystoreInstanceAutomatedBackupConfig): void;
    resetAutomatedBackupConfig(): void;
    get automatedBackupConfigInput(): MemorystoreInstanceAutomatedBackupConfig | undefined;
    private _crossInstanceReplicationConfig;
    get crossInstanceReplicationConfig(): MemorystoreInstanceCrossInstanceReplicationConfigOutputReference;
    putCrossInstanceReplicationConfig(value: MemorystoreInstanceCrossInstanceReplicationConfig): void;
    resetCrossInstanceReplicationConfig(): void;
    get crossInstanceReplicationConfigInput(): MemorystoreInstanceCrossInstanceReplicationConfig | undefined;
    private _desiredPscAutoConnections;
    get desiredPscAutoConnections(): MemorystoreInstanceDesiredPscAutoConnectionsList;
    putDesiredPscAutoConnections(value: MemorystoreInstanceDesiredPscAutoConnections[] | cdktf.IResolvable): void;
    resetDesiredPscAutoConnections(): void;
    get desiredPscAutoConnectionsInput(): cdktf.IResolvable | MemorystoreInstanceDesiredPscAutoConnections[] | undefined;
    private _gcsSource;
    get gcsSource(): MemorystoreInstanceGcsSourceOutputReference;
    putGcsSource(value: MemorystoreInstanceGcsSource): void;
    resetGcsSource(): void;
    get gcsSourceInput(): MemorystoreInstanceGcsSource | undefined;
    private _maintenancePolicy;
    get maintenancePolicy(): MemorystoreInstanceMaintenancePolicyOutputReference;
    putMaintenancePolicy(value: MemorystoreInstanceMaintenancePolicy): void;
    resetMaintenancePolicy(): void;
    get maintenancePolicyInput(): MemorystoreInstanceMaintenancePolicy | undefined;
    private _managedBackupSource;
    get managedBackupSource(): MemorystoreInstanceManagedBackupSourceOutputReference;
    putManagedBackupSource(value: MemorystoreInstanceManagedBackupSource): void;
    resetManagedBackupSource(): void;
    get managedBackupSourceInput(): MemorystoreInstanceManagedBackupSource | undefined;
    private _persistenceConfig;
    get persistenceConfig(): MemorystoreInstancePersistenceConfigOutputReference;
    putPersistenceConfig(value: MemorystoreInstancePersistenceConfig): void;
    resetPersistenceConfig(): void;
    get persistenceConfigInput(): MemorystoreInstancePersistenceConfig | undefined;
    private _timeouts;
    get timeouts(): MemorystoreInstanceTimeoutsOutputReference;
    putTimeouts(value: MemorystoreInstanceTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | MemorystoreInstanceTimeouts | undefined;
    private _zoneDistributionConfig;
    get zoneDistributionConfig(): MemorystoreInstanceZoneDistributionConfigOutputReference;
    putZoneDistributionConfig(value: MemorystoreInstanceZoneDistributionConfig): void;
    resetZoneDistributionConfig(): void;
    get zoneDistributionConfigInput(): MemorystoreInstanceZoneDistributionConfig | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
