/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface MemcacheInstanceConfig extends cdktf.TerraformMetaArguments {
    /**
    * The full name of the GCE network to connect the instance to.  If not provided,
    * 'default' will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#authorized_network MemcacheInstance#authorized_network}
    */
    readonly authorizedNetwork?: string;
    /**
    * A user-visible name for the instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#display_name MemcacheInstance#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#id MemcacheInstance#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;
    /**
    * Resource 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.29.0/docs/resources/memcache_instance#labels MemcacheInstance#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The major version of Memcached software. If not provided, latest supported version will be used.
    * Currently the latest supported major version is MEMCACHE_1_5. The minor version will be automatically
    * determined by our system based on the latest supported minor version. Default value: "MEMCACHE_1_5" Possible values: ["MEMCACHE_1_5", "MEMCACHE_1_6_15"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#memcache_version MemcacheInstance#memcache_version}
    */
    readonly memcacheVersion?: string;
    /**
    * The resource name of the instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#name MemcacheInstance#name}
    */
    readonly name: string;
    /**
    * Number of nodes in the memcache instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#node_count MemcacheInstance#node_count}
    */
    readonly nodeCount: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#project MemcacheInstance#project}
    */
    readonly project?: string;
    /**
    * The region of the Memcache instance. If it is not provided, the provider region is used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#region MemcacheInstance#region}
    */
    readonly region?: string;
    /**
    * Contains the name of allocated IP address ranges associated with
    * the private service access connection for example, "test-default"
    * associated with IP range 10.0.0.0/29.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#reserved_ip_range_id MemcacheInstance#reserved_ip_range_id}
    */
    readonly reservedIpRangeId?: string[];
    /**
    * Zones where memcache nodes should be provisioned.  If not
    * provided, all zones will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#zones MemcacheInstance#zones}
    */
    readonly zones?: string[];
    /**
    * maintenance_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#maintenance_policy MemcacheInstance#maintenance_policy}
    */
    readonly maintenancePolicy?: MemcacheInstanceMaintenancePolicy;
    /**
    * memcache_parameters block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#memcache_parameters MemcacheInstance#memcache_parameters}
    */
    readonly memcacheParameters?: MemcacheInstanceMemcacheParameters;
    /**
    * node_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#node_config MemcacheInstance#node_config}
    */
    readonly nodeConfig: MemcacheInstanceNodeConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#timeouts MemcacheInstance#timeouts}
    */
    readonly timeouts?: MemcacheInstanceTimeouts;
}
export interface MemcacheInstanceMaintenanceSchedule {
}
export declare function memcacheInstanceMaintenanceScheduleToTerraform(struct?: MemcacheInstanceMaintenanceSchedule): any;
export declare function memcacheInstanceMaintenanceScheduleToHclTerraform(struct?: MemcacheInstanceMaintenanceSchedule): any;
export declare class MemcacheInstanceMaintenanceScheduleOutputReference 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(): MemcacheInstanceMaintenanceSchedule | undefined;
    set internalValue(value: MemcacheInstanceMaintenanceSchedule | undefined);
    get endTime(): string;
    get scheduleDeadlineTime(): string;
    get startTime(): string;
}
export declare class MemcacheInstanceMaintenanceScheduleList 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): MemcacheInstanceMaintenanceScheduleOutputReference;
}
export interface MemcacheInstanceMemcacheNodes {
}
export declare function memcacheInstanceMemcacheNodesToTerraform(struct?: MemcacheInstanceMemcacheNodes): any;
export declare function memcacheInstanceMemcacheNodesToHclTerraform(struct?: MemcacheInstanceMemcacheNodes): any;
export declare class MemcacheInstanceMemcacheNodesOutputReference 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(): MemcacheInstanceMemcacheNodes | undefined;
    set internalValue(value: MemcacheInstanceMemcacheNodes | undefined);
    get host(): string;
    get nodeId(): string;
    get port(): number;
    get state(): string;
    get zone(): string;
}
export declare class MemcacheInstanceMemcacheNodesList 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): MemcacheInstanceMemcacheNodesOutputReference;
}
export interface MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime {
    /**
    * 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.29.0/docs/resources/memcache_instance#hours MemcacheInstance#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.29.0/docs/resources/memcache_instance#minutes MemcacheInstance#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.29.0/docs/resources/memcache_instance#nanos MemcacheInstance#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.29.0/docs/resources/memcache_instance#seconds MemcacheInstance#seconds}
    */
    readonly seconds?: number;
}
export declare function memcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeToTerraform(struct?: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeOutputReference | MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime): any;
export declare function memcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeToHclTerraform(struct?: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeOutputReference | MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime): any;
export declare class MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeOutputReference 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(): MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime | undefined;
    set internalValue(value: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime | 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 MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow {
    /**
    * Required. 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.29.0/docs/resources/memcache_instance#day MemcacheInstance#day}
    */
    readonly day: string;
    /**
    * Required. The length of the maintenance window, ranging from 3 hours to 8 hours.
    * A duration in seconds with up to nine fractional digits,
    * terminated by 's'. Example: "3.5s".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#duration MemcacheInstance#duration}
    */
    readonly duration: string;
    /**
    * start_time block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#start_time MemcacheInstance#start_time}
    */
    readonly startTime: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime;
}
export declare function memcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowToTerraform(struct?: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow | cdktf.IResolvable): any;
export declare function memcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowToHclTerraform(struct?: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow | cdktf.IResolvable): any;
export declare class MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowOutputReference 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(): MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow | cdktf.IResolvable | undefined;
    set internalValue(value: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow | cdktf.IResolvable | undefined);
    private _day?;
    get day(): string;
    set day(value: string);
    get dayInput(): string | undefined;
    private _duration?;
    get duration(): string;
    set duration(value: string);
    get durationInput(): string | undefined;
    private _startTime;
    get startTime(): MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeOutputReference;
    putStartTime(value: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime): void;
    get startTimeInput(): MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTime | undefined;
}
export declare class MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow[] | 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): MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowOutputReference;
}
export interface MemcacheInstanceMaintenancePolicy {
    /**
    * Optional. Description of what this policy is for.
    * Create/Update methods return INVALID_ARGUMENT if the
    * length is greater than 512.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#description MemcacheInstance#description}
    */
    readonly description?: string;
    /**
    * weekly_maintenance_window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#weekly_maintenance_window MemcacheInstance#weekly_maintenance_window}
    */
    readonly weeklyMaintenanceWindow: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow[] | cdktf.IResolvable;
}
export declare function memcacheInstanceMaintenancePolicyToTerraform(struct?: MemcacheInstanceMaintenancePolicyOutputReference | MemcacheInstanceMaintenancePolicy): any;
export declare function memcacheInstanceMaintenancePolicyToHclTerraform(struct?: MemcacheInstanceMaintenancePolicyOutputReference | MemcacheInstanceMaintenancePolicy): any;
export declare class MemcacheInstanceMaintenancePolicyOutputReference 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(): MemcacheInstanceMaintenancePolicy | undefined;
    set internalValue(value: MemcacheInstanceMaintenancePolicy | undefined);
    get createTime(): string;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    get updateTime(): string;
    private _weeklyMaintenanceWindow;
    get weeklyMaintenanceWindow(): MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowList;
    putWeeklyMaintenanceWindow(value: MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow[] | cdktf.IResolvable): void;
    get weeklyMaintenanceWindowInput(): cdktf.IResolvable | MemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindow[] | undefined;
}
export interface MemcacheInstanceMemcacheParameters {
    /**
    * User-defined set of parameters to use in the memcache process.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#params MemcacheInstance#params}
    */
    readonly params?: {
        [key: string]: string;
    };
}
export declare function memcacheInstanceMemcacheParametersToTerraform(struct?: MemcacheInstanceMemcacheParametersOutputReference | MemcacheInstanceMemcacheParameters): any;
export declare function memcacheInstanceMemcacheParametersToHclTerraform(struct?: MemcacheInstanceMemcacheParametersOutputReference | MemcacheInstanceMemcacheParameters): any;
export declare class MemcacheInstanceMemcacheParametersOutputReference 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(): MemcacheInstanceMemcacheParameters | undefined;
    set internalValue(value: MemcacheInstanceMemcacheParameters | undefined);
    get id(): string;
    private _params?;
    get params(): {
        [key: string]: string;
    };
    set params(value: {
        [key: string]: string;
    });
    resetParams(): void;
    get paramsInput(): {
        [key: string]: string;
    } | undefined;
}
export interface MemcacheInstanceNodeConfig {
    /**
    * Number of CPUs per node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#cpu_count MemcacheInstance#cpu_count}
    */
    readonly cpuCount: number;
    /**
    * Memory size in Mebibytes for each memcache node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#memory_size_mb MemcacheInstance#memory_size_mb}
    */
    readonly memorySizeMb: number;
}
export declare function memcacheInstanceNodeConfigToTerraform(struct?: MemcacheInstanceNodeConfigOutputReference | MemcacheInstanceNodeConfig): any;
export declare function memcacheInstanceNodeConfigToHclTerraform(struct?: MemcacheInstanceNodeConfigOutputReference | MemcacheInstanceNodeConfig): any;
export declare class MemcacheInstanceNodeConfigOutputReference 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(): MemcacheInstanceNodeConfig | undefined;
    set internalValue(value: MemcacheInstanceNodeConfig | undefined);
    private _cpuCount?;
    get cpuCount(): number;
    set cpuCount(value: number);
    get cpuCountInput(): number | undefined;
    private _memorySizeMb?;
    get memorySizeMb(): number;
    set memorySizeMb(value: number);
    get memorySizeMbInput(): number | undefined;
}
export interface MemcacheInstanceTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#create MemcacheInstance#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#delete MemcacheInstance#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#update MemcacheInstance#update}
    */
    readonly update?: string;
}
export declare function memcacheInstanceTimeoutsToTerraform(struct?: MemcacheInstanceTimeouts | cdktf.IResolvable): any;
export declare function memcacheInstanceTimeoutsToHclTerraform(struct?: MemcacheInstanceTimeouts | cdktf.IResolvable): any;
export declare class MemcacheInstanceTimeoutsOutputReference 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(): MemcacheInstanceTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: MemcacheInstanceTimeouts | 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.29.0/docs/resources/memcache_instance google_memcache_instance}
*/
export declare class MemcacheInstance extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_memcache_instance";
    /**
    * Generates CDKTF code for importing a MemcacheInstance 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 MemcacheInstance to import
    * @param importFromId The id of the existing MemcacheInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/memcache_instance#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the MemcacheInstance 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.29.0/docs/resources/memcache_instance google_memcache_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 MemcacheInstanceConfig
    */
    constructor(scope: Construct, id: string, config: MemcacheInstanceConfig);
    private _authorizedNetwork?;
    get authorizedNetwork(): string;
    set authorizedNetwork(value: string);
    resetAuthorizedNetwork(): void;
    get authorizedNetworkInput(): string | undefined;
    get createTime(): string;
    get discoveryEndpoint(): string;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): 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 _maintenanceSchedule;
    get maintenanceSchedule(): MemcacheInstanceMaintenanceScheduleList;
    get memcacheFullVersion(): string;
    private _memcacheNodes;
    get memcacheNodes(): MemcacheInstanceMemcacheNodesList;
    private _memcacheVersion?;
    get memcacheVersion(): string;
    set memcacheVersion(value: string);
    resetMemcacheVersion(): void;
    get memcacheVersionInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _nodeCount?;
    get nodeCount(): number;
    set nodeCount(value: number);
    get nodeCountInput(): number | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _region?;
    get region(): string;
    set region(value: string);
    resetRegion(): void;
    get regionInput(): string | undefined;
    private _reservedIpRangeId?;
    get reservedIpRangeId(): string[];
    set reservedIpRangeId(value: string[]);
    resetReservedIpRangeId(): void;
    get reservedIpRangeIdInput(): string[] | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    private _zones?;
    get zones(): string[];
    set zones(value: string[]);
    resetZones(): void;
    get zonesInput(): string[] | undefined;
    private _maintenancePolicy;
    get maintenancePolicy(): MemcacheInstanceMaintenancePolicyOutputReference;
    putMaintenancePolicy(value: MemcacheInstanceMaintenancePolicy): void;
    resetMaintenancePolicy(): void;
    get maintenancePolicyInput(): MemcacheInstanceMaintenancePolicy | undefined;
    private _memcacheParameters;
    get memcacheParameters(): MemcacheInstanceMemcacheParametersOutputReference;
    putMemcacheParameters(value: MemcacheInstanceMemcacheParameters): void;
    resetMemcacheParameters(): void;
    get memcacheParametersInput(): MemcacheInstanceMemcacheParameters | undefined;
    private _nodeConfig;
    get nodeConfig(): MemcacheInstanceNodeConfigOutputReference;
    putNodeConfig(value: MemcacheInstanceNodeConfig): void;
    get nodeConfigInput(): MemcacheInstanceNodeConfig | undefined;
    private _timeouts;
    get timeouts(): MemcacheInstanceTimeoutsOutputReference;
    putTimeouts(value: MemcacheInstanceTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | MemcacheInstanceTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
