/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ManagedDatabasePostgresqlConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#id ManagedDatabasePostgresql#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;
    /**
    * User defined key-value pairs to classify the managed database.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#labels ManagedDatabasePostgresql#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * Maintenance window day of week. Lower case weekday name (monday, tuesday, ...)
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#maintenance_window_dow ManagedDatabasePostgresql#maintenance_window_dow}
    */
    readonly maintenanceWindowDow?: string;
    /**
    * Maintenance window UTC time in hh:mm:ss format
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#maintenance_window_time ManagedDatabasePostgresql#maintenance_window_time}
    */
    readonly maintenanceWindowTime?: string;
    /**
    * Name of the service. The name is used as a prefix for the logical hostname. Must be unique within an account
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#name ManagedDatabasePostgresql#name}
    */
    readonly name: string;
    /**
    * Service plan to use. This determines how much resources the instance will have. You can list available plans with `upctl database plans <type>`.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#plan ManagedDatabasePostgresql#plan}
    */
    readonly plan: string;
    /**
    * The administrative power state of the service
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#powered ManagedDatabasePostgresql#powered}
    */
    readonly powered?: boolean | cdktf.IResolvable;
    /**
    * If set to true, prevents the managed service from being powered off, or deleted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#termination_protection ManagedDatabasePostgresql#termination_protection}
    */
    readonly terminationProtection?: boolean | cdktf.IResolvable;
    /**
    * Title of a managed database instance
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#title ManagedDatabasePostgresql#title}
    */
    readonly title: string;
    /**
    * Zone where the instance resides, e.g. `de-fra1`. You can list available zones with `upctl zone list`.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#zone ManagedDatabasePostgresql#zone}
    */
    readonly zone: string;
    /**
    * network block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#network ManagedDatabasePostgresql#network}
    */
    readonly network?: ManagedDatabasePostgresqlNetwork[] | cdktf.IResolvable;
    /**
    * properties block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#properties ManagedDatabasePostgresql#properties}
    */
    readonly properties?: ManagedDatabasePostgresqlProperties;
}
export interface ManagedDatabasePostgresqlComponents {
}
export declare function managedDatabasePostgresqlComponentsToTerraform(struct?: ManagedDatabasePostgresqlComponents): any;
export declare function managedDatabasePostgresqlComponentsToHclTerraform(struct?: ManagedDatabasePostgresqlComponents): any;
export declare class ManagedDatabasePostgresqlComponentsOutputReference 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(): ManagedDatabasePostgresqlComponents | undefined;
    set internalValue(value: ManagedDatabasePostgresqlComponents | undefined);
    get component(): string;
    get host(): string;
    get port(): number;
    get route(): string;
    get usage(): string;
}
export declare class ManagedDatabasePostgresqlComponentsList 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): ManagedDatabasePostgresqlComponentsOutputReference;
}
export interface ManagedDatabasePostgresqlNodeStates {
}
export declare function managedDatabasePostgresqlNodeStatesToTerraform(struct?: ManagedDatabasePostgresqlNodeStates): any;
export declare function managedDatabasePostgresqlNodeStatesToHclTerraform(struct?: ManagedDatabasePostgresqlNodeStates): any;
export declare class ManagedDatabasePostgresqlNodeStatesOutputReference 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(): ManagedDatabasePostgresqlNodeStates | undefined;
    set internalValue(value: ManagedDatabasePostgresqlNodeStates | undefined);
    get name(): string;
    get role(): string;
    get state(): string;
}
export declare class ManagedDatabasePostgresqlNodeStatesList 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): ManagedDatabasePostgresqlNodeStatesOutputReference;
}
export interface ManagedDatabasePostgresqlNetwork {
    /**
    * Network family. Currently only `IPv4` is supported.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#family ManagedDatabasePostgresql#family}
    */
    readonly family: string;
    /**
    * The name of the network. Must be unique within the service.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#name ManagedDatabasePostgresql#name}
    */
    readonly name: string;
    /**
    * The type of the network. Must be private.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#type ManagedDatabasePostgresql#type}
    */
    readonly type: string;
    /**
    * Private network UUID. Must reside in the same zone as the database.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#uuid ManagedDatabasePostgresql#uuid}
    */
    readonly uuid: string;
}
export declare function managedDatabasePostgresqlNetworkToTerraform(struct?: ManagedDatabasePostgresqlNetwork | cdktf.IResolvable): any;
export declare function managedDatabasePostgresqlNetworkToHclTerraform(struct?: ManagedDatabasePostgresqlNetwork | cdktf.IResolvable): any;
export declare class ManagedDatabasePostgresqlNetworkOutputReference 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(): ManagedDatabasePostgresqlNetwork | cdktf.IResolvable | undefined;
    set internalValue(value: ManagedDatabasePostgresqlNetwork | cdktf.IResolvable | undefined);
    private _family?;
    get family(): string;
    set family(value: string);
    get familyInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
    private _uuid?;
    get uuid(): string;
    set uuid(value: string);
    get uuidInput(): string | undefined;
}
export declare class ManagedDatabasePostgresqlNetworkList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ManagedDatabasePostgresqlNetwork[] | 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): ManagedDatabasePostgresqlNetworkOutputReference;
}
export interface ManagedDatabasePostgresqlPropertiesMigration {
    /**
    * Database name for bootstrapping the initial connection.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#dbname ManagedDatabasePostgresql#dbname}
    */
    readonly dbname?: string;
    /**
    * Hostname or IP address of the server where to migrate data from.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#host ManagedDatabasePostgresql#host}
    */
    readonly host?: string;
    /**
    * Comma-separated list of databases, which should be ignored during migration (supported by MySQL and PostgreSQL only at the moment).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#ignore_dbs ManagedDatabasePostgresql#ignore_dbs}
    */
    readonly ignoreDbs?: string;
    /**
    * Comma-separated list of database roles, which should be ignored during migration (supported by PostgreSQL only at the moment).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#ignore_roles ManagedDatabasePostgresql#ignore_roles}
    */
    readonly ignoreRoles?: string;
    /**
    * The migration method to be used (currently supported only by Redis, Dragonfly, MySQL and PostgreSQL service types).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#method ManagedDatabasePostgresql#method}
    */
    readonly method?: string;
    /**
    * Password for authentication with the server where to migrate data from.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#password ManagedDatabasePostgresql#password}
    */
    readonly password?: string;
    /**
    * Port number of the server where to migrate data from.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#port ManagedDatabasePostgresql#port}
    */
    readonly port?: number;
    /**
    * The server where to migrate data from is secured with SSL.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#ssl ManagedDatabasePostgresql#ssl}
    */
    readonly ssl?: boolean | cdktf.IResolvable;
    /**
    * User name for authentication with the server where to migrate data from.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#username ManagedDatabasePostgresql#username}
    */
    readonly username?: string;
}
export declare function managedDatabasePostgresqlPropertiesMigrationToTerraform(struct?: ManagedDatabasePostgresqlPropertiesMigrationOutputReference | ManagedDatabasePostgresqlPropertiesMigration): any;
export declare function managedDatabasePostgresqlPropertiesMigrationToHclTerraform(struct?: ManagedDatabasePostgresqlPropertiesMigrationOutputReference | ManagedDatabasePostgresqlPropertiesMigration): any;
export declare class ManagedDatabasePostgresqlPropertiesMigrationOutputReference 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(): ManagedDatabasePostgresqlPropertiesMigration | undefined;
    set internalValue(value: ManagedDatabasePostgresqlPropertiesMigration | undefined);
    private _dbname?;
    get dbname(): string;
    set dbname(value: string);
    resetDbname(): void;
    get dbnameInput(): string | undefined;
    private _host?;
    get host(): string;
    set host(value: string);
    resetHost(): void;
    get hostInput(): string | undefined;
    private _ignoreDbs?;
    get ignoreDbs(): string;
    set ignoreDbs(value: string);
    resetIgnoreDbs(): void;
    get ignoreDbsInput(): string | undefined;
    private _ignoreRoles?;
    get ignoreRoles(): string;
    set ignoreRoles(value: string);
    resetIgnoreRoles(): void;
    get ignoreRolesInput(): string | undefined;
    private _method?;
    get method(): string;
    set method(value: string);
    resetMethod(): void;
    get methodInput(): string | undefined;
    private _password?;
    get password(): string;
    set password(value: string);
    resetPassword(): void;
    get passwordInput(): string | undefined;
    private _port?;
    get port(): number;
    set port(value: number);
    resetPort(): void;
    get portInput(): number | undefined;
    private _ssl?;
    get ssl(): boolean | cdktf.IResolvable;
    set ssl(value: boolean | cdktf.IResolvable);
    resetSsl(): void;
    get sslInput(): boolean | cdktf.IResolvable | undefined;
    private _username?;
    get username(): string;
    set username(value: string);
    resetUsername(): void;
    get usernameInput(): string | undefined;
}
export interface ManagedDatabasePostgresqlPropertiesPgaudit {
    /**
    * Enable pgaudit extension. Enable pgaudit extension. When enabled, pgaudit extension will be automatically installed.Otherwise, extension will be uninstalled but auditing configurations will be preserved.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#feature_enabled ManagedDatabasePostgresql#feature_enabled}
    */
    readonly featureEnabled?: boolean | cdktf.IResolvable;
    /**
    * Specifies which classes of statements will be logged by session audit logging.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log ManagedDatabasePostgresql#log}
    */
    readonly log?: string[];
    /**
    * Specifies that session logging should be enabled in the casewhere all relations in a statement are in pg_catalog.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_catalog ManagedDatabasePostgresql#log_catalog}
    */
    readonly logCatalog?: boolean | cdktf.IResolvable;
    /**
    * Specifies whether log messages will be visible to a client process such as psql.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_client ManagedDatabasePostgresql#log_client}
    */
    readonly logClient?: boolean | cdktf.IResolvable;
    /**
    * Specifies the log level that will be used for log entries.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_level ManagedDatabasePostgresql#log_level}
    */
    readonly logLevel?: string;
    /**
    * Crop parameters representation and whole statements if they exceed this threshold. A (default) value of -1 disable the truncation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_max_string_length ManagedDatabasePostgresql#log_max_string_length}
    */
    readonly logMaxStringLength?: number;
    /**
    * This GUC allows to turn off logging nested statements, that is, statements that are executed as part of another ExecutorRun.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_nested_statements ManagedDatabasePostgresql#log_nested_statements}
    */
    readonly logNestedStatements?: boolean | cdktf.IResolvable;
    /**
    * Specifies that audit logging should include the parameters that were passed with the statement.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_parameter ManagedDatabasePostgresql#log_parameter}
    */
    readonly logParameter?: boolean | cdktf.IResolvable;
    /**
    * Specifies that parameter values longer than this setting (in bytes) should not be logged, but replaced with <long param suppressed>.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_parameter_max_size ManagedDatabasePostgresql#log_parameter_max_size}
    */
    readonly logParameterMaxSize?: number;
    /**
    * Specifies whether session audit logging should create a separate log entry for each relation (TABLE, VIEW, etc.) referenced in a SELECT or DML statement.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_relation ManagedDatabasePostgresql#log_relation}
    */
    readonly logRelation?: boolean | cdktf.IResolvable;
    /**
    * Specifies that audit logging should include the rows retrieved or affected by a statement. When enabled the rows field will be included after the parameter field.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_rows ManagedDatabasePostgresql#log_rows}
    */
    readonly logRows?: boolean | cdktf.IResolvable;
    /**
    * Specifies whether logging will include the statement text and parameters (if enabled).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_statement ManagedDatabasePostgresql#log_statement}
    */
    readonly logStatement?: boolean | cdktf.IResolvable;
    /**
    * Specifies whether logging will include the statement text and parameters with the first log entry for a statement/substatement combination or with every entry.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_statement_once ManagedDatabasePostgresql#log_statement_once}
    */
    readonly logStatementOnce?: boolean | cdktf.IResolvable;
    /**
    * Specifies the master role to use for object audit logging.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#role ManagedDatabasePostgresql#role}
    */
    readonly role?: string;
}
export declare function managedDatabasePostgresqlPropertiesPgauditToTerraform(struct?: ManagedDatabasePostgresqlPropertiesPgauditOutputReference | ManagedDatabasePostgresqlPropertiesPgaudit): any;
export declare function managedDatabasePostgresqlPropertiesPgauditToHclTerraform(struct?: ManagedDatabasePostgresqlPropertiesPgauditOutputReference | ManagedDatabasePostgresqlPropertiesPgaudit): any;
export declare class ManagedDatabasePostgresqlPropertiesPgauditOutputReference 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(): ManagedDatabasePostgresqlPropertiesPgaudit | undefined;
    set internalValue(value: ManagedDatabasePostgresqlPropertiesPgaudit | undefined);
    private _featureEnabled?;
    get featureEnabled(): boolean | cdktf.IResolvable;
    set featureEnabled(value: boolean | cdktf.IResolvable);
    resetFeatureEnabled(): void;
    get featureEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _log?;
    get log(): string[];
    set log(value: string[]);
    resetLog(): void;
    get logInput(): string[] | undefined;
    private _logCatalog?;
    get logCatalog(): boolean | cdktf.IResolvable;
    set logCatalog(value: boolean | cdktf.IResolvable);
    resetLogCatalog(): void;
    get logCatalogInput(): boolean | cdktf.IResolvable | undefined;
    private _logClient?;
    get logClient(): boolean | cdktf.IResolvable;
    set logClient(value: boolean | cdktf.IResolvable);
    resetLogClient(): void;
    get logClientInput(): boolean | cdktf.IResolvable | undefined;
    private _logLevel?;
    get logLevel(): string;
    set logLevel(value: string);
    resetLogLevel(): void;
    get logLevelInput(): string | undefined;
    private _logMaxStringLength?;
    get logMaxStringLength(): number;
    set logMaxStringLength(value: number);
    resetLogMaxStringLength(): void;
    get logMaxStringLengthInput(): number | undefined;
    private _logNestedStatements?;
    get logNestedStatements(): boolean | cdktf.IResolvable;
    set logNestedStatements(value: boolean | cdktf.IResolvable);
    resetLogNestedStatements(): void;
    get logNestedStatementsInput(): boolean | cdktf.IResolvable | undefined;
    private _logParameter?;
    get logParameter(): boolean | cdktf.IResolvable;
    set logParameter(value: boolean | cdktf.IResolvable);
    resetLogParameter(): void;
    get logParameterInput(): boolean | cdktf.IResolvable | undefined;
    private _logParameterMaxSize?;
    get logParameterMaxSize(): number;
    set logParameterMaxSize(value: number);
    resetLogParameterMaxSize(): void;
    get logParameterMaxSizeInput(): number | undefined;
    private _logRelation?;
    get logRelation(): boolean | cdktf.IResolvable;
    set logRelation(value: boolean | cdktf.IResolvable);
    resetLogRelation(): void;
    get logRelationInput(): boolean | cdktf.IResolvable | undefined;
    private _logRows?;
    get logRows(): boolean | cdktf.IResolvable;
    set logRows(value: boolean | cdktf.IResolvable);
    resetLogRows(): void;
    get logRowsInput(): boolean | cdktf.IResolvable | undefined;
    private _logStatement?;
    get logStatement(): boolean | cdktf.IResolvable;
    set logStatement(value: boolean | cdktf.IResolvable);
    resetLogStatement(): void;
    get logStatementInput(): boolean | cdktf.IResolvable | undefined;
    private _logStatementOnce?;
    get logStatementOnce(): boolean | cdktf.IResolvable;
    set logStatementOnce(value: boolean | cdktf.IResolvable);
    resetLogStatementOnce(): void;
    get logStatementOnceInput(): boolean | cdktf.IResolvable | undefined;
    private _role?;
    get role(): string;
    set role(value: string);
    resetRole(): void;
    get roleInput(): string | undefined;
}
export interface ManagedDatabasePostgresqlPropertiesPgbouncer {
    /**
    * If the automatically created database pools have been unused this many seconds, they are freed. If 0 then timeout is disabled. [seconds].
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autodb_idle_timeout ManagedDatabasePostgresql#autodb_idle_timeout}
    */
    readonly autodbIdleTimeout?: number;
    /**
    * Do not allow more than this many server connections per database (regardless of user). Setting it to 0 means unlimited.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autodb_max_db_connections ManagedDatabasePostgresql#autodb_max_db_connections}
    */
    readonly autodbMaxDbConnections?: number;
    /**
    * PGBouncer pool mode.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autodb_pool_mode ManagedDatabasePostgresql#autodb_pool_mode}
    */
    readonly autodbPoolMode?: string;
    /**
    * If non-zero then create automatically a pool of that size per user when a pool doesn't exist.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autodb_pool_size ManagedDatabasePostgresql#autodb_pool_size}
    */
    readonly autodbPoolSize?: number;
    /**
    * List of parameters to ignore when given in startup packet.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#ignore_startup_parameters ManagedDatabasePostgresql#ignore_startup_parameters}
    */
    readonly ignoreStartupParameters?: string[];
    /**
    * PgBouncer tracks protocol-level named prepared statements related commands sent by the client in transaction and statement pooling modes when max_prepared_statements is set to a non-zero value. Setting it to 0 disables prepared statements. max_prepared_statements defaults to 100, and its maximum is 3000.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_prepared_statements ManagedDatabasePostgresql#max_prepared_statements}
    */
    readonly maxPreparedStatements?: number;
    /**
    * Add more server connections to pool if below this number. Improves behavior when usual load comes suddenly back after period of total inactivity. The value is effectively capped at the pool size.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#min_pool_size ManagedDatabasePostgresql#min_pool_size}
    */
    readonly minPoolSize?: number;
    /**
    * If a server connection has been idle more than this many seconds it will be dropped. If 0 then timeout is disabled. [seconds].
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#server_idle_timeout ManagedDatabasePostgresql#server_idle_timeout}
    */
    readonly serverIdleTimeout?: number;
    /**
    * The pooler will close an unused server connection that has been connected longer than this. [seconds].
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#server_lifetime ManagedDatabasePostgresql#server_lifetime}
    */
    readonly serverLifetime?: number;
    /**
    * Run server_reset_query (DISCARD ALL) in all pooling modes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#server_reset_query_always ManagedDatabasePostgresql#server_reset_query_always}
    */
    readonly serverResetQueryAlways?: boolean | cdktf.IResolvable;
}
export declare function managedDatabasePostgresqlPropertiesPgbouncerToTerraform(struct?: ManagedDatabasePostgresqlPropertiesPgbouncerOutputReference | ManagedDatabasePostgresqlPropertiesPgbouncer): any;
export declare function managedDatabasePostgresqlPropertiesPgbouncerToHclTerraform(struct?: ManagedDatabasePostgresqlPropertiesPgbouncerOutputReference | ManagedDatabasePostgresqlPropertiesPgbouncer): any;
export declare class ManagedDatabasePostgresqlPropertiesPgbouncerOutputReference 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(): ManagedDatabasePostgresqlPropertiesPgbouncer | undefined;
    set internalValue(value: ManagedDatabasePostgresqlPropertiesPgbouncer | undefined);
    private _autodbIdleTimeout?;
    get autodbIdleTimeout(): number;
    set autodbIdleTimeout(value: number);
    resetAutodbIdleTimeout(): void;
    get autodbIdleTimeoutInput(): number | undefined;
    private _autodbMaxDbConnections?;
    get autodbMaxDbConnections(): number;
    set autodbMaxDbConnections(value: number);
    resetAutodbMaxDbConnections(): void;
    get autodbMaxDbConnectionsInput(): number | undefined;
    private _autodbPoolMode?;
    get autodbPoolMode(): string;
    set autodbPoolMode(value: string);
    resetAutodbPoolMode(): void;
    get autodbPoolModeInput(): string | undefined;
    private _autodbPoolSize?;
    get autodbPoolSize(): number;
    set autodbPoolSize(value: number);
    resetAutodbPoolSize(): void;
    get autodbPoolSizeInput(): number | undefined;
    private _ignoreStartupParameters?;
    get ignoreStartupParameters(): string[];
    set ignoreStartupParameters(value: string[]);
    resetIgnoreStartupParameters(): void;
    get ignoreStartupParametersInput(): string[] | undefined;
    private _maxPreparedStatements?;
    get maxPreparedStatements(): number;
    set maxPreparedStatements(value: number);
    resetMaxPreparedStatements(): void;
    get maxPreparedStatementsInput(): number | undefined;
    private _minPoolSize?;
    get minPoolSize(): number;
    set minPoolSize(value: number);
    resetMinPoolSize(): void;
    get minPoolSizeInput(): number | undefined;
    private _serverIdleTimeout?;
    get serverIdleTimeout(): number;
    set serverIdleTimeout(value: number);
    resetServerIdleTimeout(): void;
    get serverIdleTimeoutInput(): number | undefined;
    private _serverLifetime?;
    get serverLifetime(): number;
    set serverLifetime(value: number);
    resetServerLifetime(): void;
    get serverLifetimeInput(): number | undefined;
    private _serverResetQueryAlways?;
    get serverResetQueryAlways(): boolean | cdktf.IResolvable;
    set serverResetQueryAlways(value: boolean | cdktf.IResolvable);
    resetServerResetQueryAlways(): void;
    get serverResetQueryAlwaysInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ManagedDatabasePostgresqlPropertiesPglookout {
    /**
    * Number of seconds of master unavailability before triggering database failover to standby.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_failover_replication_time_lag ManagedDatabasePostgresql#max_failover_replication_time_lag}
    */
    readonly maxFailoverReplicationTimeLag?: number;
}
export declare function managedDatabasePostgresqlPropertiesPglookoutToTerraform(struct?: ManagedDatabasePostgresqlPropertiesPglookoutOutputReference | ManagedDatabasePostgresqlPropertiesPglookout): any;
export declare function managedDatabasePostgresqlPropertiesPglookoutToHclTerraform(struct?: ManagedDatabasePostgresqlPropertiesPglookoutOutputReference | ManagedDatabasePostgresqlPropertiesPglookout): any;
export declare class ManagedDatabasePostgresqlPropertiesPglookoutOutputReference 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(): ManagedDatabasePostgresqlPropertiesPglookout | undefined;
    set internalValue(value: ManagedDatabasePostgresqlPropertiesPglookout | undefined);
    private _maxFailoverReplicationTimeLag?;
    get maxFailoverReplicationTimeLag(): number;
    set maxFailoverReplicationTimeLag(value: number);
    resetMaxFailoverReplicationTimeLag(): void;
    get maxFailoverReplicationTimeLagInput(): number | undefined;
}
export interface ManagedDatabasePostgresqlPropertiesTimescaledb {
    /**
    * The number of background workers for timescaledb operations. You should configure this setting to the sum of your number of databases and the total number of concurrent background workers you want running at any given point in time.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_background_workers ManagedDatabasePostgresql#max_background_workers}
    */
    readonly maxBackgroundWorkers?: number;
}
export declare function managedDatabasePostgresqlPropertiesTimescaledbToTerraform(struct?: ManagedDatabasePostgresqlPropertiesTimescaledbOutputReference | ManagedDatabasePostgresqlPropertiesTimescaledb): any;
export declare function managedDatabasePostgresqlPropertiesTimescaledbToHclTerraform(struct?: ManagedDatabasePostgresqlPropertiesTimescaledbOutputReference | ManagedDatabasePostgresqlPropertiesTimescaledb): any;
export declare class ManagedDatabasePostgresqlPropertiesTimescaledbOutputReference 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(): ManagedDatabasePostgresqlPropertiesTimescaledb | undefined;
    set internalValue(value: ManagedDatabasePostgresqlPropertiesTimescaledb | undefined);
    private _maxBackgroundWorkers?;
    get maxBackgroundWorkers(): number;
    set maxBackgroundWorkers(value: number);
    resetMaxBackgroundWorkers(): void;
    get maxBackgroundWorkersInput(): number | undefined;
}
export interface ManagedDatabasePostgresqlProperties {
    /**
    * Custom password for admin user. Defaults to random string. This must be set only when a new service is being created.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#admin_password ManagedDatabasePostgresql#admin_password}
    */
    readonly adminPassword?: string;
    /**
    * Custom username for admin user. This must be set only when a new service is being created.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#admin_username ManagedDatabasePostgresql#admin_username}
    */
    readonly adminUsername?: string;
    /**
    * Automatic utility network IP Filter. Automatically allow connections from servers in the utility network within the same zone.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#automatic_utility_network_ip_filter ManagedDatabasePostgresql#automatic_utility_network_ip_filter}
    */
    readonly automaticUtilityNetworkIpFilter?: boolean | cdktf.IResolvable;
    /**
    * Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default is 0.2 (20% of table size).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_analyze_scale_factor ManagedDatabasePostgresql#autovacuum_analyze_scale_factor}
    */
    readonly autovacuumAnalyzeScaleFactor?: number;
    /**
    * Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an ANALYZE in any one table. The default is 50 tuples.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_analyze_threshold ManagedDatabasePostgresql#autovacuum_analyze_threshold}
    */
    readonly autovacuumAnalyzeThreshold?: number;
    /**
    * Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before a VACUUM operation is forced to prevent transaction ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. This parameter will cause the server to be restarted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_freeze_max_age ManagedDatabasePostgresql#autovacuum_freeze_max_age}
    */
    readonly autovacuumFreezeMaxAge?: number;
    /**
    * Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is three. This parameter can only be set at server start.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_max_workers ManagedDatabasePostgresql#autovacuum_max_workers}
    */
    readonly autovacuumMaxWorkers?: number;
    /**
    * Specifies the minimum delay between autovacuum runs on any given database. The delay is measured in seconds, and the default is one minute.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_naptime ManagedDatabasePostgresql#autovacuum_naptime}
    */
    readonly autovacuumNaptime?: number;
    /**
    * Specifies the cost delay value that will be used in automatic VACUUM operations. If -1 is specified, the regular vacuum_cost_delay value will be used. The default value is 20 milliseconds.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_vacuum_cost_delay ManagedDatabasePostgresql#autovacuum_vacuum_cost_delay}
    */
    readonly autovacuumVacuumCostDelay?: number;
    /**
    * Specifies the cost limit value that will be used in automatic VACUUM operations. If -1 is specified (which is the default), the regular vacuum_cost_limit value will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_vacuum_cost_limit ManagedDatabasePostgresql#autovacuum_vacuum_cost_limit}
    */
    readonly autovacuumVacuumCostLimit?: number;
    /**
    * Specifies a fraction of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_vacuum_scale_factor ManagedDatabasePostgresql#autovacuum_vacuum_scale_factor}
    */
    readonly autovacuumVacuumScaleFactor?: number;
    /**
    * Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is 50 tuples.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#autovacuum_vacuum_threshold ManagedDatabasePostgresql#autovacuum_vacuum_threshold}
    */
    readonly autovacuumVacuumThreshold?: number;
    /**
    * The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#backup_hour ManagedDatabasePostgresql#backup_hour}
    */
    readonly backupHour?: number;
    /**
    * The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#backup_minute ManagedDatabasePostgresql#backup_minute}
    */
    readonly backupMinute?: number;
    /**
    * Specifies the delay between activity rounds for the background writer in milliseconds. Default is 200.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#bgwriter_delay ManagedDatabasePostgresql#bgwriter_delay}
    */
    readonly bgwriterDelay?: number;
    /**
    * Whenever more than bgwriter_flush_after bytes have been written by the background writer, attempt to force the OS to issue these writes to the underlying storage. Specified in kilobytes, default is 512. Setting of 0 disables forced writeback.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#bgwriter_flush_after ManagedDatabasePostgresql#bgwriter_flush_after}
    */
    readonly bgwriterFlushAfter?: number;
    /**
    * In each round, no more than this many buffers will be written by the background writer. Setting this to zero disables background writing. Default is 100.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#bgwriter_lru_maxpages ManagedDatabasePostgresql#bgwriter_lru_maxpages}
    */
    readonly bgwriterLruMaxpages?: number;
    /**
    * The average recent need for new buffers is multiplied by bgwriter_lru_multiplier to arrive at an estimate of the number that will be needed during the next round, (up to bgwriter_lru_maxpages). 1.0 represents a “just in time” policy of writing exactly the number of buffers predicted to be needed. Larger values provide some cushion against spikes in demand, while smaller values intentionally leave writes to be done by server processes. The default is 2.0.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#bgwriter_lru_multiplier ManagedDatabasePostgresql#bgwriter_lru_multiplier}
    */
    readonly bgwriterLruMultiplier?: number;
    /**
    * This is the amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#deadlock_timeout ManagedDatabasePostgresql#deadlock_timeout}
    */
    readonly deadlockTimeout?: number;
    /**
    * Specifies the default TOAST compression method for values of compressible columns (the default is lz4).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#default_toast_compression ManagedDatabasePostgresql#default_toast_compression}
    */
    readonly defaultToastCompression?: string;
    /**
    * Time out sessions with open transactions after this number of milliseconds.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#idle_in_transaction_session_timeout ManagedDatabasePostgresql#idle_in_transaction_session_timeout}
    */
    readonly idleInTransactionSessionTimeout?: number;
    /**
    * IP filter. Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#ip_filter ManagedDatabasePostgresql#ip_filter}
    */
    readonly ipFilter?: string[];
    /**
    * Controls system-wide use of Just-in-Time Compilation (JIT).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#jit ManagedDatabasePostgresql#jit}
    */
    readonly jit?: boolean | cdktf.IResolvable;
    /**
    * Causes each action executed by autovacuum to be logged if it ran for at least the specified number of milliseconds. Setting this to zero logs all autovacuum actions. Minus-one (the default) disables logging autovacuum actions.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_autovacuum_min_duration ManagedDatabasePostgresql#log_autovacuum_min_duration}
    */
    readonly logAutovacuumMinDuration?: number;
    /**
    * Controls the amount of detail written in the server log for each message that is logged.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_error_verbosity ManagedDatabasePostgresql#log_error_verbosity}
    */
    readonly logErrorVerbosity?: string;
    /**
    * Choose from one of the available log formats.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_line_prefix ManagedDatabasePostgresql#log_line_prefix}
    */
    readonly logLinePrefix?: string;
    /**
    * Log statements that take more than this number of milliseconds to run, -1 disables.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_min_duration_statement ManagedDatabasePostgresql#log_min_duration_statement}
    */
    readonly logMinDurationStatement?: number;
    /**
    * Log statements for each temporary file created larger than this number of kilobytes, -1 disables.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#log_temp_files ManagedDatabasePostgresql#log_temp_files}
    */
    readonly logTempFiles?: number;
    /**
    * PostgreSQL maximum number of files that can be open per process.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_files_per_process ManagedDatabasePostgresql#max_files_per_process}
    */
    readonly maxFilesPerProcess?: number;
    /**
    * PostgreSQL maximum locks per transaction.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_locks_per_transaction ManagedDatabasePostgresql#max_locks_per_transaction}
    */
    readonly maxLocksPerTransaction?: number;
    /**
    * PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_logical_replication_workers ManagedDatabasePostgresql#max_logical_replication_workers}
    */
    readonly maxLogicalReplicationWorkers?: number;
    /**
    * Sets the maximum number of workers that the system can support for parallel queries.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_parallel_workers ManagedDatabasePostgresql#max_parallel_workers}
    */
    readonly maxParallelWorkers?: number;
    /**
    * Sets the maximum number of workers that can be started by a single Gather or Gather Merge node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_parallel_workers_per_gather ManagedDatabasePostgresql#max_parallel_workers_per_gather}
    */
    readonly maxParallelWorkersPerGather?: number;
    /**
    * PostgreSQL maximum predicate locks per transaction.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_pred_locks_per_transaction ManagedDatabasePostgresql#max_pred_locks_per_transaction}
    */
    readonly maxPredLocksPerTransaction?: number;
    /**
    * PostgreSQL maximum prepared transactions.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_prepared_transactions ManagedDatabasePostgresql#max_prepared_transactions}
    */
    readonly maxPreparedTransactions?: number;
    /**
    * PostgreSQL maximum replication slots.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_replication_slots ManagedDatabasePostgresql#max_replication_slots}
    */
    readonly maxReplicationSlots?: number;
    /**
    * PostgreSQL maximum WAL size (MB) reserved for replication slots. Default is -1 (unlimited). wal_keep_size minimum WAL size setting takes precedence over this.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_slot_wal_keep_size ManagedDatabasePostgresql#max_slot_wal_keep_size}
    */
    readonly maxSlotWalKeepSize?: number;
    /**
    * Maximum depth of the stack in bytes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_stack_depth ManagedDatabasePostgresql#max_stack_depth}
    */
    readonly maxStackDepth?: number;
    /**
    * Max standby archive delay in milliseconds.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_standby_archive_delay ManagedDatabasePostgresql#max_standby_archive_delay}
    */
    readonly maxStandbyArchiveDelay?: number;
    /**
    * Max standby streaming delay in milliseconds.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_standby_streaming_delay ManagedDatabasePostgresql#max_standby_streaming_delay}
    */
    readonly maxStandbyStreamingDelay?: number;
    /**
    * PostgreSQL maximum WAL senders.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_wal_senders ManagedDatabasePostgresql#max_wal_senders}
    */
    readonly maxWalSenders?: number;
    /**
    * Sets the maximum number of background processes that the system can support.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#max_worker_processes ManagedDatabasePostgresql#max_worker_processes}
    */
    readonly maxWorkerProcesses?: number;
    /**
    * Chooses the algorithm for encrypting passwords.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#password_encryption ManagedDatabasePostgresql#password_encryption}
    */
    readonly passwordEncryption?: string;
    /**
    * Sets the time interval to run pg_partman's scheduled tasks.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pg_partman_bgw_interval ManagedDatabasePostgresql#pg_partman_bgw_interval}
    */
    readonly pgPartmanBgwInterval?: number;
    /**
    * Controls which role to use for pg_partman's scheduled background tasks.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pg_partman_bgw_role ManagedDatabasePostgresql#pg_partman_bgw_role}
    */
    readonly pgPartmanBgwRole?: string;
    /**
    * Enable pg_stat_monitor extension if available for the current cluster. Enable the pg_stat_monitor extension. Enabling this extension will cause the cluster to be restarted.When this extension is enabled, pg_stat_statements results for utility commands are unreliable.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pg_stat_monitor_enable ManagedDatabasePostgresql#pg_stat_monitor_enable}
    */
    readonly pgStatMonitorEnable?: boolean | cdktf.IResolvable;
    /**
    * Enables or disables query plan monitoring.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pg_stat_monitor_pgsm_enable_query_plan ManagedDatabasePostgresql#pg_stat_monitor_pgsm_enable_query_plan}
    */
    readonly pgStatMonitorPgsmEnableQueryPlan?: boolean | cdktf.IResolvable;
    /**
    * Sets the maximum number of buckets.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pg_stat_monitor_pgsm_max_buckets ManagedDatabasePostgresql#pg_stat_monitor_pgsm_max_buckets}
    */
    readonly pgStatMonitorPgsmMaxBuckets?: number;
    /**
    * Controls which statements are counted. Specify top to track top-level statements (those issued directly by clients), all to also track nested statements (such as statements invoked within functions), or none to disable statement statistics collection. The default value is top.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pg_stat_statements_track ManagedDatabasePostgresql#pg_stat_statements_track}
    */
    readonly pgStatStatementsTrack?: string;
    /**
    * Public Access. Allow access to the service from the public Internet.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#public_access ManagedDatabasePostgresql#public_access}
    */
    readonly publicAccess?: boolean | cdktf.IResolvable;
    /**
    * Service logging. Store logs for the service so that they are available in the HTTP API and console.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#service_log ManagedDatabasePostgresql#service_log}
    */
    readonly serviceLog?: boolean | cdktf.IResolvable;
    /**
    * Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#shared_buffers_percentage ManagedDatabasePostgresql#shared_buffers_percentage}
    */
    readonly sharedBuffersPercentage?: number;
    /**
    * Synchronous replication type. Note that the service plan also needs to support synchronous replication.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#synchronous_replication ManagedDatabasePostgresql#synchronous_replication}
    */
    readonly synchronousReplication?: string;
    /**
    * PostgreSQL temporary file limit in KiB, -1 for unlimited.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#temp_file_limit ManagedDatabasePostgresql#temp_file_limit}
    */
    readonly tempFileLimit?: number;
    /**
    * PostgreSQL service timezone.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#timezone ManagedDatabasePostgresql#timezone}
    */
    readonly timezone?: string;
    /**
    * Specifies the number of bytes reserved to track the currently executing command for each active session.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#track_activity_query_size ManagedDatabasePostgresql#track_activity_query_size}
    */
    readonly trackActivityQuerySize?: number;
    /**
    * Record commit time of transactions.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#track_commit_timestamp ManagedDatabasePostgresql#track_commit_timestamp}
    */
    readonly trackCommitTimestamp?: string;
    /**
    * Enables tracking of function call counts and time used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#track_functions ManagedDatabasePostgresql#track_functions}
    */
    readonly trackFunctions?: string;
    /**
    * Enables timing of database I/O calls. This parameter is off by default, because it will repeatedly query the operating system for the current time, which may cause significant overhead on some platforms.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#track_io_timing ManagedDatabasePostgresql#track_io_timing}
    */
    readonly trackIoTiming?: string;
    /**
    * Variant of the PostgreSQL service, may affect the features that are exposed by default.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#variant ManagedDatabasePostgresql#variant}
    */
    readonly variant?: string;
    /**
    * PostgreSQL major version.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#version ManagedDatabasePostgresql#version}
    */
    readonly version?: string;
    /**
    * Terminate replication connections that are inactive for longer than this amount of time, in milliseconds. Setting this value to zero disables the timeout.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#wal_sender_timeout ManagedDatabasePostgresql#wal_sender_timeout}
    */
    readonly walSenderTimeout?: number;
    /**
    * WAL flush interval in milliseconds. Note that setting this value to lower than the default 200ms may negatively impact performance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#wal_writer_delay ManagedDatabasePostgresql#wal_writer_delay}
    */
    readonly walWriterDelay?: number;
    /**
    * Sets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#work_mem ManagedDatabasePostgresql#work_mem}
    */
    readonly workMem?: number;
    /**
    * migration block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#migration ManagedDatabasePostgresql#migration}
    */
    readonly migration?: ManagedDatabasePostgresqlPropertiesMigration;
    /**
    * pgaudit block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pgaudit ManagedDatabasePostgresql#pgaudit}
    */
    readonly pgaudit?: ManagedDatabasePostgresqlPropertiesPgaudit;
    /**
    * pgbouncer block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pgbouncer ManagedDatabasePostgresql#pgbouncer}
    */
    readonly pgbouncer?: ManagedDatabasePostgresqlPropertiesPgbouncer;
    /**
    * pglookout block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#pglookout ManagedDatabasePostgresql#pglookout}
    */
    readonly pglookout?: ManagedDatabasePostgresqlPropertiesPglookout;
    /**
    * timescaledb block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#timescaledb ManagedDatabasePostgresql#timescaledb}
    */
    readonly timescaledb?: ManagedDatabasePostgresqlPropertiesTimescaledb;
}
export declare function managedDatabasePostgresqlPropertiesToTerraform(struct?: ManagedDatabasePostgresqlPropertiesOutputReference | ManagedDatabasePostgresqlProperties): any;
export declare function managedDatabasePostgresqlPropertiesToHclTerraform(struct?: ManagedDatabasePostgresqlPropertiesOutputReference | ManagedDatabasePostgresqlProperties): any;
export declare class ManagedDatabasePostgresqlPropertiesOutputReference 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(): ManagedDatabasePostgresqlProperties | undefined;
    set internalValue(value: ManagedDatabasePostgresqlProperties | undefined);
    private _adminPassword?;
    get adminPassword(): string;
    set adminPassword(value: string);
    resetAdminPassword(): void;
    get adminPasswordInput(): string | undefined;
    private _adminUsername?;
    get adminUsername(): string;
    set adminUsername(value: string);
    resetAdminUsername(): void;
    get adminUsernameInput(): string | undefined;
    private _automaticUtilityNetworkIpFilter?;
    get automaticUtilityNetworkIpFilter(): boolean | cdktf.IResolvable;
    set automaticUtilityNetworkIpFilter(value: boolean | cdktf.IResolvable);
    resetAutomaticUtilityNetworkIpFilter(): void;
    get automaticUtilityNetworkIpFilterInput(): boolean | cdktf.IResolvable | undefined;
    private _autovacuumAnalyzeScaleFactor?;
    get autovacuumAnalyzeScaleFactor(): number;
    set autovacuumAnalyzeScaleFactor(value: number);
    resetAutovacuumAnalyzeScaleFactor(): void;
    get autovacuumAnalyzeScaleFactorInput(): number | undefined;
    private _autovacuumAnalyzeThreshold?;
    get autovacuumAnalyzeThreshold(): number;
    set autovacuumAnalyzeThreshold(value: number);
    resetAutovacuumAnalyzeThreshold(): void;
    get autovacuumAnalyzeThresholdInput(): number | undefined;
    private _autovacuumFreezeMaxAge?;
    get autovacuumFreezeMaxAge(): number;
    set autovacuumFreezeMaxAge(value: number);
    resetAutovacuumFreezeMaxAge(): void;
    get autovacuumFreezeMaxAgeInput(): number | undefined;
    private _autovacuumMaxWorkers?;
    get autovacuumMaxWorkers(): number;
    set autovacuumMaxWorkers(value: number);
    resetAutovacuumMaxWorkers(): void;
    get autovacuumMaxWorkersInput(): number | undefined;
    private _autovacuumNaptime?;
    get autovacuumNaptime(): number;
    set autovacuumNaptime(value: number);
    resetAutovacuumNaptime(): void;
    get autovacuumNaptimeInput(): number | undefined;
    private _autovacuumVacuumCostDelay?;
    get autovacuumVacuumCostDelay(): number;
    set autovacuumVacuumCostDelay(value: number);
    resetAutovacuumVacuumCostDelay(): void;
    get autovacuumVacuumCostDelayInput(): number | undefined;
    private _autovacuumVacuumCostLimit?;
    get autovacuumVacuumCostLimit(): number;
    set autovacuumVacuumCostLimit(value: number);
    resetAutovacuumVacuumCostLimit(): void;
    get autovacuumVacuumCostLimitInput(): number | undefined;
    private _autovacuumVacuumScaleFactor?;
    get autovacuumVacuumScaleFactor(): number;
    set autovacuumVacuumScaleFactor(value: number);
    resetAutovacuumVacuumScaleFactor(): void;
    get autovacuumVacuumScaleFactorInput(): number | undefined;
    private _autovacuumVacuumThreshold?;
    get autovacuumVacuumThreshold(): number;
    set autovacuumVacuumThreshold(value: number);
    resetAutovacuumVacuumThreshold(): void;
    get autovacuumVacuumThresholdInput(): number | undefined;
    private _backupHour?;
    get backupHour(): number;
    set backupHour(value: number);
    resetBackupHour(): void;
    get backupHourInput(): number | undefined;
    private _backupMinute?;
    get backupMinute(): number;
    set backupMinute(value: number);
    resetBackupMinute(): void;
    get backupMinuteInput(): number | undefined;
    private _bgwriterDelay?;
    get bgwriterDelay(): number;
    set bgwriterDelay(value: number);
    resetBgwriterDelay(): void;
    get bgwriterDelayInput(): number | undefined;
    private _bgwriterFlushAfter?;
    get bgwriterFlushAfter(): number;
    set bgwriterFlushAfter(value: number);
    resetBgwriterFlushAfter(): void;
    get bgwriterFlushAfterInput(): number | undefined;
    private _bgwriterLruMaxpages?;
    get bgwriterLruMaxpages(): number;
    set bgwriterLruMaxpages(value: number);
    resetBgwriterLruMaxpages(): void;
    get bgwriterLruMaxpagesInput(): number | undefined;
    private _bgwriterLruMultiplier?;
    get bgwriterLruMultiplier(): number;
    set bgwriterLruMultiplier(value: number);
    resetBgwriterLruMultiplier(): void;
    get bgwriterLruMultiplierInput(): number | undefined;
    private _deadlockTimeout?;
    get deadlockTimeout(): number;
    set deadlockTimeout(value: number);
    resetDeadlockTimeout(): void;
    get deadlockTimeoutInput(): number | undefined;
    private _defaultToastCompression?;
    get defaultToastCompression(): string;
    set defaultToastCompression(value: string);
    resetDefaultToastCompression(): void;
    get defaultToastCompressionInput(): string | undefined;
    private _idleInTransactionSessionTimeout?;
    get idleInTransactionSessionTimeout(): number;
    set idleInTransactionSessionTimeout(value: number);
    resetIdleInTransactionSessionTimeout(): void;
    get idleInTransactionSessionTimeoutInput(): number | undefined;
    private _ipFilter?;
    get ipFilter(): string[];
    set ipFilter(value: string[]);
    resetIpFilter(): void;
    get ipFilterInput(): string[] | undefined;
    private _jit?;
    get jit(): boolean | cdktf.IResolvable;
    set jit(value: boolean | cdktf.IResolvable);
    resetJit(): void;
    get jitInput(): boolean | cdktf.IResolvable | undefined;
    private _logAutovacuumMinDuration?;
    get logAutovacuumMinDuration(): number;
    set logAutovacuumMinDuration(value: number);
    resetLogAutovacuumMinDuration(): void;
    get logAutovacuumMinDurationInput(): number | undefined;
    private _logErrorVerbosity?;
    get logErrorVerbosity(): string;
    set logErrorVerbosity(value: string);
    resetLogErrorVerbosity(): void;
    get logErrorVerbosityInput(): string | undefined;
    private _logLinePrefix?;
    get logLinePrefix(): string;
    set logLinePrefix(value: string);
    resetLogLinePrefix(): void;
    get logLinePrefixInput(): string | undefined;
    private _logMinDurationStatement?;
    get logMinDurationStatement(): number;
    set logMinDurationStatement(value: number);
    resetLogMinDurationStatement(): void;
    get logMinDurationStatementInput(): number | undefined;
    private _logTempFiles?;
    get logTempFiles(): number;
    set logTempFiles(value: number);
    resetLogTempFiles(): void;
    get logTempFilesInput(): number | undefined;
    private _maxFilesPerProcess?;
    get maxFilesPerProcess(): number;
    set maxFilesPerProcess(value: number);
    resetMaxFilesPerProcess(): void;
    get maxFilesPerProcessInput(): number | undefined;
    private _maxLocksPerTransaction?;
    get maxLocksPerTransaction(): number;
    set maxLocksPerTransaction(value: number);
    resetMaxLocksPerTransaction(): void;
    get maxLocksPerTransactionInput(): number | undefined;
    private _maxLogicalReplicationWorkers?;
    get maxLogicalReplicationWorkers(): number;
    set maxLogicalReplicationWorkers(value: number);
    resetMaxLogicalReplicationWorkers(): void;
    get maxLogicalReplicationWorkersInput(): number | undefined;
    private _maxParallelWorkers?;
    get maxParallelWorkers(): number;
    set maxParallelWorkers(value: number);
    resetMaxParallelWorkers(): void;
    get maxParallelWorkersInput(): number | undefined;
    private _maxParallelWorkersPerGather?;
    get maxParallelWorkersPerGather(): number;
    set maxParallelWorkersPerGather(value: number);
    resetMaxParallelWorkersPerGather(): void;
    get maxParallelWorkersPerGatherInput(): number | undefined;
    private _maxPredLocksPerTransaction?;
    get maxPredLocksPerTransaction(): number;
    set maxPredLocksPerTransaction(value: number);
    resetMaxPredLocksPerTransaction(): void;
    get maxPredLocksPerTransactionInput(): number | undefined;
    private _maxPreparedTransactions?;
    get maxPreparedTransactions(): number;
    set maxPreparedTransactions(value: number);
    resetMaxPreparedTransactions(): void;
    get maxPreparedTransactionsInput(): number | undefined;
    private _maxReplicationSlots?;
    get maxReplicationSlots(): number;
    set maxReplicationSlots(value: number);
    resetMaxReplicationSlots(): void;
    get maxReplicationSlotsInput(): number | undefined;
    private _maxSlotWalKeepSize?;
    get maxSlotWalKeepSize(): number;
    set maxSlotWalKeepSize(value: number);
    resetMaxSlotWalKeepSize(): void;
    get maxSlotWalKeepSizeInput(): number | undefined;
    private _maxStackDepth?;
    get maxStackDepth(): number;
    set maxStackDepth(value: number);
    resetMaxStackDepth(): void;
    get maxStackDepthInput(): number | undefined;
    private _maxStandbyArchiveDelay?;
    get maxStandbyArchiveDelay(): number;
    set maxStandbyArchiveDelay(value: number);
    resetMaxStandbyArchiveDelay(): void;
    get maxStandbyArchiveDelayInput(): number | undefined;
    private _maxStandbyStreamingDelay?;
    get maxStandbyStreamingDelay(): number;
    set maxStandbyStreamingDelay(value: number);
    resetMaxStandbyStreamingDelay(): void;
    get maxStandbyStreamingDelayInput(): number | undefined;
    private _maxWalSenders?;
    get maxWalSenders(): number;
    set maxWalSenders(value: number);
    resetMaxWalSenders(): void;
    get maxWalSendersInput(): number | undefined;
    private _maxWorkerProcesses?;
    get maxWorkerProcesses(): number;
    set maxWorkerProcesses(value: number);
    resetMaxWorkerProcesses(): void;
    get maxWorkerProcessesInput(): number | undefined;
    private _passwordEncryption?;
    get passwordEncryption(): string;
    set passwordEncryption(value: string);
    resetPasswordEncryption(): void;
    get passwordEncryptionInput(): string | undefined;
    private _pgPartmanBgwInterval?;
    get pgPartmanBgwInterval(): number;
    set pgPartmanBgwInterval(value: number);
    resetPgPartmanBgwInterval(): void;
    get pgPartmanBgwIntervalInput(): number | undefined;
    private _pgPartmanBgwRole?;
    get pgPartmanBgwRole(): string;
    set pgPartmanBgwRole(value: string);
    resetPgPartmanBgwRole(): void;
    get pgPartmanBgwRoleInput(): string | undefined;
    private _pgStatMonitorEnable?;
    get pgStatMonitorEnable(): boolean | cdktf.IResolvable;
    set pgStatMonitorEnable(value: boolean | cdktf.IResolvable);
    resetPgStatMonitorEnable(): void;
    get pgStatMonitorEnableInput(): boolean | cdktf.IResolvable | undefined;
    private _pgStatMonitorPgsmEnableQueryPlan?;
    get pgStatMonitorPgsmEnableQueryPlan(): boolean | cdktf.IResolvable;
    set pgStatMonitorPgsmEnableQueryPlan(value: boolean | cdktf.IResolvable);
    resetPgStatMonitorPgsmEnableQueryPlan(): void;
    get pgStatMonitorPgsmEnableQueryPlanInput(): boolean | cdktf.IResolvable | undefined;
    private _pgStatMonitorPgsmMaxBuckets?;
    get pgStatMonitorPgsmMaxBuckets(): number;
    set pgStatMonitorPgsmMaxBuckets(value: number);
    resetPgStatMonitorPgsmMaxBuckets(): void;
    get pgStatMonitorPgsmMaxBucketsInput(): number | undefined;
    private _pgStatStatementsTrack?;
    get pgStatStatementsTrack(): string;
    set pgStatStatementsTrack(value: string);
    resetPgStatStatementsTrack(): void;
    get pgStatStatementsTrackInput(): string | undefined;
    private _publicAccess?;
    get publicAccess(): boolean | cdktf.IResolvable;
    set publicAccess(value: boolean | cdktf.IResolvable);
    resetPublicAccess(): void;
    get publicAccessInput(): boolean | cdktf.IResolvable | undefined;
    private _serviceLog?;
    get serviceLog(): boolean | cdktf.IResolvable;
    set serviceLog(value: boolean | cdktf.IResolvable);
    resetServiceLog(): void;
    get serviceLogInput(): boolean | cdktf.IResolvable | undefined;
    private _sharedBuffersPercentage?;
    get sharedBuffersPercentage(): number;
    set sharedBuffersPercentage(value: number);
    resetSharedBuffersPercentage(): void;
    get sharedBuffersPercentageInput(): number | undefined;
    private _synchronousReplication?;
    get synchronousReplication(): string;
    set synchronousReplication(value: string);
    resetSynchronousReplication(): void;
    get synchronousReplicationInput(): string | undefined;
    private _tempFileLimit?;
    get tempFileLimit(): number;
    set tempFileLimit(value: number);
    resetTempFileLimit(): void;
    get tempFileLimitInput(): number | undefined;
    private _timezone?;
    get timezone(): string;
    set timezone(value: string);
    resetTimezone(): void;
    get timezoneInput(): string | undefined;
    private _trackActivityQuerySize?;
    get trackActivityQuerySize(): number;
    set trackActivityQuerySize(value: number);
    resetTrackActivityQuerySize(): void;
    get trackActivityQuerySizeInput(): number | undefined;
    private _trackCommitTimestamp?;
    get trackCommitTimestamp(): string;
    set trackCommitTimestamp(value: string);
    resetTrackCommitTimestamp(): void;
    get trackCommitTimestampInput(): string | undefined;
    private _trackFunctions?;
    get trackFunctions(): string;
    set trackFunctions(value: string);
    resetTrackFunctions(): void;
    get trackFunctionsInput(): string | undefined;
    private _trackIoTiming?;
    get trackIoTiming(): string;
    set trackIoTiming(value: string);
    resetTrackIoTiming(): void;
    get trackIoTimingInput(): string | undefined;
    private _variant?;
    get variant(): string;
    set variant(value: string);
    resetVariant(): void;
    get variantInput(): string | undefined;
    private _version?;
    get version(): string;
    set version(value: string);
    resetVersion(): void;
    get versionInput(): string | undefined;
    private _walSenderTimeout?;
    get walSenderTimeout(): number;
    set walSenderTimeout(value: number);
    resetWalSenderTimeout(): void;
    get walSenderTimeoutInput(): number | undefined;
    private _walWriterDelay?;
    get walWriterDelay(): number;
    set walWriterDelay(value: number);
    resetWalWriterDelay(): void;
    get walWriterDelayInput(): number | undefined;
    private _workMem?;
    get workMem(): number;
    set workMem(value: number);
    resetWorkMem(): void;
    get workMemInput(): number | undefined;
    private _migration;
    get migration(): ManagedDatabasePostgresqlPropertiesMigrationOutputReference;
    putMigration(value: ManagedDatabasePostgresqlPropertiesMigration): void;
    resetMigration(): void;
    get migrationInput(): ManagedDatabasePostgresqlPropertiesMigration | undefined;
    private _pgaudit;
    get pgaudit(): ManagedDatabasePostgresqlPropertiesPgauditOutputReference;
    putPgaudit(value: ManagedDatabasePostgresqlPropertiesPgaudit): void;
    resetPgaudit(): void;
    get pgauditInput(): ManagedDatabasePostgresqlPropertiesPgaudit | undefined;
    private _pgbouncer;
    get pgbouncer(): ManagedDatabasePostgresqlPropertiesPgbouncerOutputReference;
    putPgbouncer(value: ManagedDatabasePostgresqlPropertiesPgbouncer): void;
    resetPgbouncer(): void;
    get pgbouncerInput(): ManagedDatabasePostgresqlPropertiesPgbouncer | undefined;
    private _pglookout;
    get pglookout(): ManagedDatabasePostgresqlPropertiesPglookoutOutputReference;
    putPglookout(value: ManagedDatabasePostgresqlPropertiesPglookout): void;
    resetPglookout(): void;
    get pglookoutInput(): ManagedDatabasePostgresqlPropertiesPglookout | undefined;
    private _timescaledb;
    get timescaledb(): ManagedDatabasePostgresqlPropertiesTimescaledbOutputReference;
    putTimescaledb(value: ManagedDatabasePostgresqlPropertiesTimescaledb): void;
    resetTimescaledb(): void;
    get timescaledbInput(): ManagedDatabasePostgresqlPropertiesTimescaledb | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql upcloud_managed_database_postgresql}
*/
export declare class ManagedDatabasePostgresql extends cdktf.TerraformResource {
    static readonly tfResourceType = "upcloud_managed_database_postgresql";
    /**
    * Generates CDKTF code for importing a ManagedDatabasePostgresql 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 ManagedDatabasePostgresql to import
    * @param importFromId The id of the existing ManagedDatabasePostgresql that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the ManagedDatabasePostgresql 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/upcloudltd/upcloud/5.20.5/docs/resources/managed_database_postgresql upcloud_managed_database_postgresql} 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 ManagedDatabasePostgresqlConfig
    */
    constructor(scope: Construct, id: string, config: ManagedDatabasePostgresqlConfig);
    private _components;
    get components(): ManagedDatabasePostgresqlComponentsList;
    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 _maintenanceWindowDow?;
    get maintenanceWindowDow(): string;
    set maintenanceWindowDow(value: string);
    resetMaintenanceWindowDow(): void;
    get maintenanceWindowDowInput(): string | undefined;
    private _maintenanceWindowTime?;
    get maintenanceWindowTime(): string;
    set maintenanceWindowTime(value: string);
    resetMaintenanceWindowTime(): void;
    get maintenanceWindowTimeInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _nodeStates;
    get nodeStates(): ManagedDatabasePostgresqlNodeStatesList;
    private _plan?;
    get plan(): string;
    set plan(value: string);
    get planInput(): string | undefined;
    private _powered?;
    get powered(): boolean | cdktf.IResolvable;
    set powered(value: boolean | cdktf.IResolvable);
    resetPowered(): void;
    get poweredInput(): boolean | cdktf.IResolvable | undefined;
    get primaryDatabase(): string;
    get serviceHost(): string;
    get servicePassword(): string;
    get servicePort(): string;
    get serviceUri(): string;
    get serviceUsername(): string;
    get sslmode(): string;
    get state(): string;
    private _terminationProtection?;
    get terminationProtection(): boolean | cdktf.IResolvable;
    set terminationProtection(value: boolean | cdktf.IResolvable);
    resetTerminationProtection(): void;
    get terminationProtectionInput(): boolean | cdktf.IResolvable | undefined;
    private _title?;
    get title(): string;
    set title(value: string);
    get titleInput(): string | undefined;
    get type(): string;
    private _zone?;
    get zone(): string;
    set zone(value: string);
    get zoneInput(): string | undefined;
    private _network;
    get network(): ManagedDatabasePostgresqlNetworkList;
    putNetwork(value: ManagedDatabasePostgresqlNetwork[] | cdktf.IResolvable): void;
    resetNetwork(): void;
    get networkInput(): cdktf.IResolvable | ManagedDatabasePostgresqlNetwork[] | undefined;
    private _properties;
    get properties(): ManagedDatabasePostgresqlPropertiesOutputReference;
    putProperties(value: ManagedDatabasePostgresqlProperties): void;
    resetProperties(): void;
    get propertiesInput(): ManagedDatabasePostgresqlProperties | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
