import * as iam from "../../aws-iam";
import * as secretsmanager from "../../aws-secretsmanager";
import { Construct } from 'constructs';
import { IEngine } from './engine';
import { IOptionGroup } from './option-group';
/**
 * (experimental) The options passed to {@link IInstanceEngine.bind}.
 *
 * @experimental
 */
export interface InstanceEngineBindOptions {
    /**
     * (experimental) The Active Directory directory ID to create the DB instance in.
     *
     * @default - none (it's an optional field)
     * @experimental
     */
    readonly domain?: string;
    /**
     * (experimental) The timezone of the database, set by the customer.
     *
     * @default - none (it's an optional field)
     * @experimental
     */
    readonly timezone?: string;
    /**
     * (experimental) The role used for S3 importing.
     *
     * @default - none
     * @experimental
     */
    readonly s3ImportRole?: iam.IRole;
    /**
     * (experimental) The role used for S3 exporting.
     *
     * @default - none
     * @experimental
     */
    readonly s3ExportRole?: iam.IRole;
    /**
     * (experimental) The option group of the database.
     *
     * @default - none
     * @experimental
     */
    readonly optionGroup?: IOptionGroup;
}
/**
 * (experimental) The type returned from the {@link IInstanceEngine.bind} method.
 *
 * @experimental
 */
export interface InstanceEngineConfig {
    /**
     * (experimental) Features supported by the database engine.
     *
     * @default - no features
     * @see https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html
     * @experimental
     */
    readonly features?: InstanceEngineFeatures;
    /**
     * (experimental) Option group of the database.
     *
     * @default - none
     * @experimental
     */
    readonly optionGroup?: IOptionGroup;
}
/**
 * (experimental) Represents Database Engine features.
 *
 * @experimental
 */
export interface InstanceEngineFeatures {
    /**
     * (experimental) Feature name for the DB instance that the IAM role to access the S3 bucket for import is to be associated with.
     *
     * @default - no s3Import feature name
     * @experimental
     */
    readonly s3Import?: string;
    /**
     * (experimental) Feature name for the DB instance that the IAM role to export to S3 bucket is to be associated with.
     *
     * @default - no s3Export feature name
     * @experimental
     */
    readonly s3Export?: string;
}
/**
 * (experimental) Interface representing a database instance (as opposed to cluster) engine.
 *
 * @experimental
 */
export interface IInstanceEngine extends IEngine {
    /**
     * (experimental) The application used by this engine to perform rotation for a single-user scenario.
     *
     * @experimental
     */
    readonly singleUserRotationApplication: secretsmanager.SecretRotationApplication;
    /**
     * (experimental) The application used by this engine to perform rotation for a multi-user scenario.
     *
     * @experimental
     */
    readonly multiUserRotationApplication: secretsmanager.SecretRotationApplication;
    /**
     * (experimental) Method called when the engine is used to create a new instance.
     *
     * @experimental
     */
    bindToInstance(scope: Construct, options: InstanceEngineBindOptions): InstanceEngineConfig;
}
/**
 * (experimental) The versions for the MariaDB instance engines (those returned by {@link DatabaseInstanceEngine.mariaDb}).
 *
 * @experimental
 */
export declare class MariaDbEngineVersion {
    /**
     * (experimental) Version "10.2" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_10_2: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.2.11".
     *
     * @experimental
     */
    static readonly VER_10_2_11: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.2.12".
     *
     * @experimental
     */
    static readonly VER_10_2_12: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.2.15".
     *
     * @experimental
     */
    static readonly VER_10_2_15: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.2.21".
     *
     * @experimental
     */
    static readonly VER_10_2_21: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.2.32".
     *
     * @experimental
     */
    static readonly VER_10_2_32: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.3" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_10_3: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.3.8".
     *
     * @experimental
     */
    static readonly VER_10_3_8: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.3.13".
     *
     * @experimental
     */
    static readonly VER_10_3_13: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.3.20".
     *
     * @experimental
     */
    static readonly VER_10_3_20: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.3.23".
     *
     * @experimental
     */
    static readonly VER_10_3_23: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.4" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_10_4: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.4.8".
     *
     * @experimental
     */
    static readonly VER_10_4_8: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.4.13".
     *
     * @experimental
     */
    static readonly VER_10_4_13: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.5" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_10_5: MariaDbEngineVersion;
    /**
     * (experimental) Version "10.5.8".
     *
     * @experimental
     */
    static readonly VER_10_5_8: MariaDbEngineVersion;
    /**
     * (experimental) Create a new MariaDbEngineVersion with an arbitrary version.
     *
     * @param mariaDbFullVersion the full version string, for example "10.5.28".
     * @param mariaDbMajorVersion the major version of the engine, for example "10.5".
     * @experimental
     */
    static of(mariaDbFullVersion: string, mariaDbMajorVersion: string): MariaDbEngineVersion;
    /**
     * (experimental) The full version string, for example, "10.5.28".
     *
     * @experimental
     */
    readonly mariaDbFullVersion: string;
    /**
     * (experimental) The major version of the engine, for example, "10.5".
     *
     * @experimental
     */
    readonly mariaDbMajorVersion: string;
    private constructor();
}
/**
 * (experimental) Properties for MariaDB instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.mariaDb}.
 *
 * @experimental
 */
export interface MariaDbInstanceEngineProps {
    /**
     * (experimental) The exact version of the engine to use.
     *
     * @experimental
     */
    readonly version: MariaDbEngineVersion;
}
/**
 * (experimental) The versions for the MySQL instance engines (those returned by {@link DatabaseInstanceEngine.mysql}).
 *
 * @experimental
 */
export declare class MysqlEngineVersion {
    /**
     * (experimental) Version "5.7" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_5_7: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.16".
     *
     * @experimental
     */
    static readonly VER_5_7_16: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.17".
     *
     * @experimental
     */
    static readonly VER_5_7_17: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.19".
     *
     * @experimental
     */
    static readonly VER_5_7_19: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.21".
     *
     * @experimental
     */
    static readonly VER_5_7_21: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.22".
     *
     * @experimental
     */
    static readonly VER_5_7_22: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.23".
     *
     * @experimental
     */
    static readonly VER_5_7_23: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.24".
     *
     * @experimental
     */
    static readonly VER_5_7_24: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.25".
     *
     * @experimental
     */
    static readonly VER_5_7_25: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.26".
     *
     * @experimental
     */
    static readonly VER_5_7_26: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.28".
     *
     * @experimental
     */
    static readonly VER_5_7_28: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.30".
     *
     * @experimental
     */
    static readonly VER_5_7_30: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.31".
     *
     * @experimental
     */
    static readonly VER_5_7_31: MysqlEngineVersion;
    /**
     * (experimental) Version "5.7.33".
     *
     * @experimental
     */
    static readonly VER_5_7_33: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_8_0: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.11".
     *
     * @experimental
     */
    static readonly VER_8_0_11: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.13".
     *
     * @experimental
     */
    static readonly VER_8_0_13: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.15".
     *
     * @experimental
     */
    static readonly VER_8_0_15: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.16".
     *
     * @experimental
     */
    static readonly VER_8_0_16: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.17".
     *
     * @experimental
     */
    static readonly VER_8_0_17: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.19".
     *
     * @experimental
     */
    static readonly VER_8_0_19: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.20 ".
     *
     * @experimental
     */
    static readonly VER_8_0_20: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.21 ".
     *
     * @experimental
     */
    static readonly VER_8_0_21: MysqlEngineVersion;
    /**
     * (experimental) Version "8.0.23".
     *
     * @experimental
     */
    static readonly VER_8_0_23: MysqlEngineVersion;
    /**
     * (experimental) Create a new MysqlEngineVersion with an arbitrary version.
     *
     * @param mysqlFullVersion the full version string, for example "8.1.43".
     * @param mysqlMajorVersion the major version of the engine, for example "8.1".
     * @experimental
     */
    static of(mysqlFullVersion: string, mysqlMajorVersion: string): MysqlEngineVersion;
    /**
     * (experimental) The full version string, for example, "10.5.28".
     *
     * @experimental
     */
    readonly mysqlFullVersion: string;
    /**
     * (experimental) The major version of the engine, for example, "10.5".
     *
     * @experimental
     */
    readonly mysqlMajorVersion: string;
    private constructor();
}
/**
 * (experimental) Properties for MySQL instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.mysql}.
 *
 * @experimental
 */
export interface MySqlInstanceEngineProps {
    /**
     * (experimental) The exact version of the engine to use.
     *
     * @experimental
     */
    readonly version: MysqlEngineVersion;
}
/**
 * (experimental) Features supported by the Postgres database engine.
 *
 * @experimental
 */
export interface PostgresEngineFeatures {
    /**
     * (experimental) Whether this version of the Postgres engine supports the S3 data import feature.
     *
     * @default false
     * @experimental
     */
    readonly s3Import?: boolean;
}
/**
 * (experimental) The versions for the PostgreSQL instance engines (those returned by {@link DatabaseInstanceEngine.postgres}).
 *
 * @experimental
 */
export declare class PostgresEngineVersion {
    /**
     * (experimental) Version "10" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_10: PostgresEngineVersion;
    /**
     * (experimental) Version "10.1".
     *
     * @experimental
     */
    static readonly VER_10_1: PostgresEngineVersion;
    /**
     * (experimental) Version "10.3".
     *
     * @experimental
     */
    static readonly VER_10_3: PostgresEngineVersion;
    /**
     * (experimental) Version "10.4".
     *
     * @experimental
     */
    static readonly VER_10_4: PostgresEngineVersion;
    /**
     * (experimental) Version "10.5".
     *
     * @experimental
     */
    static readonly VER_10_5: PostgresEngineVersion;
    /**
     * (experimental) Version "10.6".
     *
     * @experimental
     */
    static readonly VER_10_6: PostgresEngineVersion;
    /**
     * (experimental) Version "10.7".
     *
     * @experimental
     */
    static readonly VER_10_7: PostgresEngineVersion;
    /**
     * (experimental) Version "10.9".
     *
     * @experimental
     */
    static readonly VER_10_9: PostgresEngineVersion;
    /**
     * (experimental) Version "10.10".
     *
     * @experimental
     */
    static readonly VER_10_10: PostgresEngineVersion;
    /**
     * (experimental) Version "10.11".
     *
     * @experimental
     */
    static readonly VER_10_11: PostgresEngineVersion;
    /**
     * (experimental) Version "10.12".
     *
     * @experimental
     */
    static readonly VER_10_12: PostgresEngineVersion;
    /**
     * (experimental) Version "10.13".
     *
     * @experimental
     */
    static readonly VER_10_13: PostgresEngineVersion;
    /**
     * (experimental) Version "10.14".
     *
     * @experimental
     */
    static readonly VER_10_14: PostgresEngineVersion;
    /**
     * (experimental) Version "10.15".
     *
     * @experimental
     */
    static readonly VER_10_15: PostgresEngineVersion;
    /**
     * (experimental) Version "10.16".
     *
     * @experimental
     */
    static readonly VER_10_16: PostgresEngineVersion;
    /**
     * (experimental) Version "11" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_11: PostgresEngineVersion;
    /**
     * (experimental) Version "11.1".
     *
     * @experimental
     */
    static readonly VER_11_1: PostgresEngineVersion;
    /**
     * (experimental) Version "11.2".
     *
     * @experimental
     */
    static readonly VER_11_2: PostgresEngineVersion;
    /**
     * (experimental) Version "11.4".
     *
     * @experimental
     */
    static readonly VER_11_4: PostgresEngineVersion;
    /**
     * (experimental) Version "11.5".
     *
     * @experimental
     */
    static readonly VER_11_5: PostgresEngineVersion;
    /**
     * (experimental) Version "11.6".
     *
     * @experimental
     */
    static readonly VER_11_6: PostgresEngineVersion;
    /**
     * (experimental) Version "11.7".
     *
     * @experimental
     */
    static readonly VER_11_7: PostgresEngineVersion;
    /**
     * (experimental) Version "11.8".
     *
     * @experimental
     */
    static readonly VER_11_8: PostgresEngineVersion;
    /**
     * (experimental) Version "11.9".
     *
     * @experimental
     */
    static readonly VER_11_9: PostgresEngineVersion;
    /**
     * (experimental) Version "11.10".
     *
     * @experimental
     */
    static readonly VER_11_10: PostgresEngineVersion;
    /**
     * (experimental) Version "11.11".
     *
     * @experimental
     */
    static readonly VER_11_11: PostgresEngineVersion;
    /**
     * (experimental) Version "12" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_12: PostgresEngineVersion;
    /**
     * (experimental) Version "12.2".
     *
     * @experimental
     */
    static readonly VER_12_2: PostgresEngineVersion;
    /**
     * (experimental) Version "12.3".
     *
     * @experimental
     */
    static readonly VER_12_3: PostgresEngineVersion;
    /**
     * (experimental) Version "12.4".
     *
     * @experimental
     */
    static readonly VER_12_4: PostgresEngineVersion;
    /**
     * (experimental) Version "12.5".
     *
     * @experimental
     */
    static readonly VER_12_5: PostgresEngineVersion;
    /**
     * (experimental) Version "12.6".
     *
     * @experimental
     */
    static readonly VER_12_6: PostgresEngineVersion;
    /**
     * (experimental) Version "13" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_13: PostgresEngineVersion;
    /**
     * (experimental) Version "13.1".
     *
     * @experimental
     */
    static readonly VER_13_1: PostgresEngineVersion;
    /**
     * (experimental) Version "13.2".
     *
     * @experimental
     */
    static readonly VER_13_2: PostgresEngineVersion;
    /**
     * (experimental) Create a new PostgresEngineVersion with an arbitrary version.
     *
     * @param postgresFullVersion the full version string, for example "13.11".
     * @param postgresMajorVersion the major version of the engine, for example "13".
     * @experimental
     */
    static of(postgresFullVersion: string, postgresMajorVersion: string, postgresFeatures?: PostgresEngineFeatures): PostgresEngineVersion;
    /**
     * (experimental) The full version string, for example, "13.11".
     *
     * @experimental
     */
    readonly postgresFullVersion: string;
    /**
     * (experimental) The major version of the engine, for example, "13".
     *
     * @experimental
     */
    readonly postgresMajorVersion: string;
    /**
     * The supported features for the DB engine
     * @internal
     */
    readonly _features: InstanceEngineFeatures;
    private constructor();
}
/**
 * (experimental) Properties for PostgreSQL instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.postgres}.
 *
 * @experimental
 */
export interface PostgresInstanceEngineProps {
    /**
     * (experimental) The exact version of the engine to use.
     *
     * @experimental
     */
    readonly version: PostgresEngineVersion;
}
/**
 * (experimental) The versions for the Oracle instance engines (those returned by {@link DatabaseInstanceEngine.oracleSe2} and {@link DatabaseInstanceEngine.oracleEe}).
 *
 * @experimental
 */
export declare class OracleEngineVersion {
    /**
     * (experimental) Version "12.1" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_12_1: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v1".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V1: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v2".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V2: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v3".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V3: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v4".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V4: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v5".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V5: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v6".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V6: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v7".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V7: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v8".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V8: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v9".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V9: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v10".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V10: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v11".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V11: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v12".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V12: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v13".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V13: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v14".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V14: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v15".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V15: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v16".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V16: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v17".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V17: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v18".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V18: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v19".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V19: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v20".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V20: OracleEngineVersion;
    /**
     * (experimental) Version "12.1.0.2.v21".
     *
     * @experimental
     */
    static readonly VER_12_1_0_2_V21: OracleEngineVersion;
    /**
     * (experimental) Version "12.2" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_12_2: OracleEngineVersion;
    /**
     * (experimental) Version "12.2.0.1.ru-2018-10.rur-2018-10.r1".
     *
     * @experimental
     */
    static readonly VER_12_2_0_1_2018_10_R1: OracleEngineVersion;
    /**
     * (experimental) Version "12.2.0.1.ru-2019-01.rur-2019-01.r1".
     *
     * @experimental
     */
    static readonly VER_12_2_0_1_2019_01_R1: OracleEngineVersion;
    /**
     * (experimental) Version "12.2.0.1.ru-2019-04.rur-2019-04.r1".
     *
     * @experimental
     */
    static readonly VER_12_2_0_1_2019_04_R1: OracleEngineVersion;
    /**
     * (experimental) Version "12.2.0.1.ru-2019-07.rur-2019-07.r1".
     *
     * @experimental
     */
    static readonly VER_12_2_0_1_2019_07_R1: OracleEngineVersion;
    /**
     * (experimental) Version "12.2.0.1.ru-2019-10.rur-2019-10.r1".
     *
     * @experimental
     */
    static readonly VER_12_2_0_1_2019_10_R1: OracleEngineVersion;
    /**
     * (experimental) Version "12.2.0.1.ru-2020-01.rur-2020-01.r1".
     *
     * @experimental
     */
    static readonly VER_12_2_0_1_2020_01_R1: OracleEngineVersion;
    /**
     * (experimental) Version "12.2.0.1.ru-2020-04.rur-2020-04.r1".
     *
     * @experimental
     */
    static readonly VER_12_2_0_1_2020_04_R1: OracleEngineVersion;
    /**
     * (experimental) Version "12.2.0.1.ru-2020-07.rur-2020-07.r1".
     *
     * @experimental
     */
    static readonly VER_12_2_0_1_2020_07_R1: OracleEngineVersion;
    /**
     * (experimental) Version "18" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_18: OracleEngineVersion;
    /**
     * (experimental) Version "18.0.0.0.ru-2019-07.rur-2019-07.r1".
     *
     * @experimental
     */
    static readonly VER_18_0_0_0_2019_07_R1: OracleEngineVersion;
    /**
     * (experimental) Version "18.0.0.0.ru-2019-10.rur-2019-10.r1".
     *
     * @experimental
     */
    static readonly VER_18_0_0_0_2019_10_R1: OracleEngineVersion;
    /**
     * (experimental) Version "18.0.0.0.ru-2020-01.rur-2020-01.r1".
     *
     * @experimental
     */
    static readonly VER_18_0_0_0_2020_01_R1: OracleEngineVersion;
    /**
     * (experimental) Version "18.0.0.0.ru-2020-04.rur-2020-04.r1".
     *
     * @experimental
     */
    static readonly VER_18_0_0_0_2020_04_R1: OracleEngineVersion;
    /**
     * (experimental) Version "18.0.0.0.ru-2020-07.rur-2020-07.r1".
     *
     * @experimental
     */
    static readonly VER_18_0_0_0_2020_07_R1: OracleEngineVersion;
    /**
     * (experimental) Version "19" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_19: OracleEngineVersion;
    /**
     * (experimental) Version "19.0.0.0.ru-2019-07.rur-2019-07.r1".
     *
     * @experimental
     */
    static readonly VER_19_0_0_0_2019_07_R1: OracleEngineVersion;
    /**
     * (experimental) Version "19.0.0.0.ru-2019-10.rur-2019-10.r1".
     *
     * @experimental
     */
    static readonly VER_19_0_0_0_2019_10_R1: OracleEngineVersion;
    /**
     * (experimental) Version "19.0.0.0.ru-2020-01.rur-2020-01.r1".
     *
     * @experimental
     */
    static readonly VER_19_0_0_0_2020_01_R1: OracleEngineVersion;
    /**
     * (experimental) Version "19.0.0.0.ru-2020-04.rur-2020-04.r1".
     *
     * @experimental
     */
    static readonly VER_19_0_0_0_2020_04_R1: OracleEngineVersion;
    /**
     * (experimental) Version "19.0.0.0.ru-2020-07.rur-2020-07.r1".
     *
     * @experimental
     */
    static readonly VER_19_0_0_0_2020_07_R1: OracleEngineVersion;
    /**
     * (experimental) Creates a new OracleEngineVersion with an arbitrary version.
     *
     * @param oracleFullVersion the full version string, for example "19.0.0.0.ru-2019-10.rur-2019-10.r1".
     * @param oracleMajorVersion the major version of the engine, for example "19".
     * @experimental
     */
    static of(oracleFullVersion: string, oracleMajorVersion: string): OracleEngineVersion;
    /**
     * (experimental) The full version string, for example, "19.0.0.0.ru-2019-10.rur-2019-10.r1".
     *
     * @experimental
     */
    readonly oracleFullVersion: string;
    /**
     * (experimental) The major version of the engine, for example, "19".
     *
     * @experimental
     */
    readonly oracleMajorVersion: string;
    private constructor();
}
interface OracleInstanceEngineProps {
    /**
     * (experimental) The exact version of the engine to use.
     *
     * @experimental
     */
    readonly version: OracleEngineVersion;
}
/**
 * (experimental) Properties for Oracle Standard Edition 2 instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.oracleSe2}.
 *
 * @experimental
 */
export interface OracleSe2InstanceEngineProps extends OracleInstanceEngineProps {
}
/**
 * (experimental) Properties for Oracle Enterprise Edition instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.oracleEe}.
 *
 * @experimental
 */
export interface OracleEeInstanceEngineProps extends OracleInstanceEngineProps {
}
/**
 * (experimental) The versions for the SQL Server instance engines (those returned by {@link DatabaseInstanceEngine.sqlServerSe}, {@link DatabaseInstanceEngine.sqlServerEx}, {@link DatabaseInstanceEngine.sqlServerWeb} and {@link DatabaseInstanceEngine.sqlServerEe}).
 *
 * @experimental
 */
export declare class SqlServerEngineVersion {
    /**
     * (experimental) Version "11.00" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_11: SqlServerEngineVersion;
    /**
     * (experimental) Version "11.00.5058.0.v1".
     *
     * @experimental
     */
    static readonly VER_11_00_5058_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "11.00.6020.0.v1".
     *
     * @experimental
     */
    static readonly VER_11_00_6020_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "11.00.6594.0.v1".
     *
     * @experimental
     */
    static readonly VER_11_00_6594_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "11.00.7462.6.v1".
     *
     * @experimental
     */
    static readonly VER_11_00_7462_6_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "11.00.7493.4.v1".
     *
     * @experimental
     */
    static readonly VER_11_00_7493_4_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "12.00" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_12: SqlServerEngineVersion;
    /**
     * (experimental) Version "12.00.5000.0.v1".
     *
     * @experimental
     */
    static readonly VER_12_00_5000_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "12.00.5546.0.v1".
     *
     * @experimental
     */
    static readonly VER_12_00_5546_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "12.00.5571.0.v1".
     *
     * @experimental
     */
    static readonly VER_12_00_5571_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "12.00.6293.0.v1".
     *
     * @experimental
     */
    static readonly VER_12_00_6293_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "12.00.6329.1.v1".
     *
     * @experimental
     */
    static readonly VER_12_00_6329_1_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_13: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.2164.0.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_2164_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.4422.0.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_4422_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.4451.0.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_4451_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.4466.4.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_4466_4_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.4522.0.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_4522_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.5216.0.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_5216_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.5292.0.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_5292_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.5366.0.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_5366_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.5426.0.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_5426_0_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.5598.27.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_5598_27_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "13.00.5820.21.v1".
     *
     * @experimental
     */
    static readonly VER_13_00_5820_21_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_14: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00.1000.169.v1".
     *
     * @experimental
     */
    static readonly VER_14_00_1000_169_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00.3015.40.v1".
     *
     * @experimental
     */
    static readonly VER_14_00_3015_40_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00.3035.2.v1".
     *
     * @experimental
     */
    static readonly VER_14_00_3035_2_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00.3049.1.v1".
     *
     * @experimental
     */
    static readonly VER_14_00_3049_1_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00.3192.2.v1".
     *
     * @experimental
     */
    static readonly VER_14_00_3192_2_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00.3223.3.v1".
     *
     * @experimental
     */
    static readonly VER_14_00_3223_3_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00.3281.6.v1".
     *
     * @experimental
     */
    static readonly VER_14_00_3281_6_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "14.00.3294.2.v1".
     *
     * @experimental
     */
    static readonly VER_14_00_3294_2_V1: SqlServerEngineVersion;
    /**
     * (experimental) Version "15.00" (only a major version, without a specific minor version).
     *
     * @experimental
     */
    static readonly VER_15: SqlServerEngineVersion;
    /**
     * (experimental) Version "15.00.4043.16.v1".
     *
     * @experimental
     */
    static readonly VER_15_00_4043_16_V1: SqlServerEngineVersion;
    /**
     * (experimental) Create a new SqlServerEngineVersion with an arbitrary version.
     *
     * @param sqlServerFullVersion the full version string, for example "15.00.3049.1.v1".
     * @param sqlServerMajorVersion the major version of the engine, for example "15.00".
     * @experimental
     */
    static of(sqlServerFullVersion: string, sqlServerMajorVersion: string): SqlServerEngineVersion;
    /**
     * (experimental) The full version string, for example, "15.00.3049.1.v1".
     *
     * @experimental
     */
    readonly sqlServerFullVersion: string;
    /**
     * (experimental) The major version of the engine, for example, "15.00".
     *
     * @experimental
     */
    readonly sqlServerMajorVersion: string;
    private constructor();
}
interface SqlServerInstanceEngineProps {
    /**
     * (experimental) The exact version of the engine to use.
     *
     * @experimental
     */
    readonly version: SqlServerEngineVersion;
}
/**
 * (experimental) Properties for SQL Server Standard Edition instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.sqlServerSe}.
 *
 * @experimental
 */
export interface SqlServerSeInstanceEngineProps extends SqlServerInstanceEngineProps {
}
/**
 * (experimental) Properties for SQL Server Express Edition instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.sqlServerEx}.
 *
 * @experimental
 */
export interface SqlServerExInstanceEngineProps extends SqlServerInstanceEngineProps {
}
/**
 * (experimental) Properties for SQL Server Web Edition instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.sqlServerWeb}.
 *
 * @experimental
 */
export interface SqlServerWebInstanceEngineProps extends SqlServerInstanceEngineProps {
}
/**
 * (experimental) Properties for SQL Server Enterprise Edition instance engines.
 *
 * Used in {@link DatabaseInstanceEngine.sqlServerEe}.
 *
 * @experimental
 */
export interface SqlServerEeInstanceEngineProps extends SqlServerInstanceEngineProps {
}
/**
 * (experimental) A database instance engine.
 *
 * Provides mapping to DatabaseEngine used for
 * secret rotation.
 *
 * @experimental
 */
export declare class DatabaseInstanceEngine {
    /**
     * (experimental) Creates a new MariaDB instance engine.
     *
     * @experimental
     */
    static mariaDb(props: MariaDbInstanceEngineProps): IInstanceEngine;
    /**
     * (experimental) Creates a new MySQL instance engine.
     *
     * @experimental
     */
    static mysql(props: MySqlInstanceEngineProps): IInstanceEngine;
    /**
     * (experimental) Creates a new PostgreSQL instance engine.
     *
     * @experimental
     */
    static postgres(props: PostgresInstanceEngineProps): IInstanceEngine;
    /**
     * (experimental) Creates a new Oracle Standard Edition 1 instance engine.
     *
     * @experimental
     */
    static oracleSe2(props: OracleSe2InstanceEngineProps): IInstanceEngine;
    /**
     * (experimental) Creates a new Oracle Enterprise Edition instance engine.
     *
     * @experimental
     */
    static oracleEe(props: OracleEeInstanceEngineProps): IInstanceEngine;
    /**
     * (experimental) Creates a new SQL Server Standard Edition instance engine.
     *
     * @experimental
     */
    static sqlServerSe(props: SqlServerSeInstanceEngineProps): IInstanceEngine;
    /**
     * (experimental) Creates a new SQL Server Express Edition instance engine.
     *
     * @experimental
     */
    static sqlServerEx(props: SqlServerExInstanceEngineProps): IInstanceEngine;
    /**
     * (experimental) Creates a new SQL Server Web Edition instance engine.
     *
     * @experimental
     */
    static sqlServerWeb(props: SqlServerWebInstanceEngineProps): IInstanceEngine;
    /**
     * (experimental) Creates a new SQL Server Enterprise Edition instance engine.
     *
     * @experimental
     */
    static sqlServerEe(props: SqlServerEeInstanceEngineProps): IInstanceEngine;
}
export {};
