import { DatabaseCluster as RDSDatabaseCluster, DatabaseClusterProps, DatabaseInstance as RDSDatabaseInstance, DatabaseInstanceProps as RDSDatabaseInstanceProps } from 'aws-cdk-lib/aws-rds';
import { Construct } from 'constructs';
/**
 * Used to state whether or not this database should be considered a production database or not
 */
export declare enum DatabaseEnvironment {
    /**
     * When used the database must be deployed to multiple Availability Zones
     */
    PRODUCTION = 0,
    /**
     * When used the database can be deployed to a single Availability Zone
     */
    NOT_PRODUCTION = 1
}
export interface DatabaseInstanceProps extends RDSDatabaseInstanceProps {
    readonly environment?: DatabaseEnvironment;
}
/**
 * Properties for a new Compliant RDS Instance
 */
export declare const defaultDatabaseInstanceProps: {
    publiclyAccessible: boolean;
    storageEncrypted: boolean;
    iamAuthentication: boolean;
    autoMinorVersionUpgrade: boolean;
    copyTagsToSnapshot: boolean;
    deletionProtection: boolean;
    multiAz: boolean;
    environment: DatabaseEnvironment;
};
/**
 * Compliant RDS Instance
 *
 * See README for usage examples
 */
export declare class DatabaseInstance extends RDSDatabaseInstance {
    protected calculatedProps: DatabaseInstanceProps;
    constructor(scope: Construct, id: string, props: DatabaseInstanceProps);
    protected checkPubliclyAccessible(): string[];
    protected checkStorageEncrypted(): string[];
    protected checkIAMAuthentication(): string[];
    protected checkAutoUpgrade(): string[];
    protected checkCopyTags(): string[];
    protected checkDeletionProtection(): string[];
    protected checkMultiAz(): string[];
}
/**
 * Properties for a new Compliant RDS Cluster
 */
export declare const defaultDatabaseClusterProps: {
    storageEncrypted: boolean;
    iamAuthentication: boolean;
    copyTagsToSnapshot: boolean;
    deletionProtection: boolean;
};
export declare const defaultInstanceProps: {
    publiclyAccessible: boolean;
    autoMinorVersionUpgrade: boolean;
};
/**
 * Compliant RDS Cluster
 *
 * See README for usage examples
 */
export declare class DatabaseCluster extends RDSDatabaseCluster {
    protected calculatedProps: DatabaseClusterProps;
    constructor(scope: Construct, id: string, props: DatabaseClusterProps);
    protected checkStorageEncrypted(): string[];
    protected checkIAMAuthentication(): string[];
    protected checkCopyTags(): string[];
    protected checkDeletionProtection(): string[];
    protected checkPubliclyAccessible(): string[];
    protected checkAutoUpgrade(): string[];
}
//# sourceMappingURL=rds.d.ts.map