/**
 * Copyright 2013-2025 the original author or authors from the JHipster project.
 *
 * This file is part of the JHipster project, see https://www.jhipster.tech/
 * for more information.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { JavaDependency } from '../../java/types.js';
import type { MavenDefinition } from '../../maven/types.js';
type DatabaseTypeDependencies = {
    jdbc: MavenDefinition;
    r2dbc: MavenDefinition;
};
export type DatabaseArtifact = {
    jdbc: JavaDependency;
    r2dbc?: JavaDependency;
    testContainer?: JavaDependency;
};
export declare const javaSqlDatabaseArtifacts: {
    readonly mariadb: {
        readonly jdbc: {
            readonly groupId: "org.mariadb.jdbc";
            readonly artifactId: "mariadb-java-client";
        };
        readonly r2dbc: {
            readonly groupId: "io.asyncer";
            readonly artifactId: "r2dbc-mysql";
        };
        readonly testContainer: {
            readonly groupId: "org.testcontainers";
            readonly artifactId: "mariadb";
            readonly scope: "test";
        };
    };
    readonly mssql: {
        readonly jdbc: {
            readonly groupId: "com.microsoft.sqlserver";
            readonly artifactId: "mssql-jdbc";
        };
        readonly r2dbc: {
            readonly groupId: "io.r2dbc";
            readonly artifactId: "r2dbc-mssql";
        };
        readonly testContainer: {
            readonly groupId: "org.testcontainers";
            readonly artifactId: "mssqlserver";
            readonly scope: "test";
        };
    };
    readonly mysql: {
        readonly jdbc: {
            readonly groupId: "com.mysql";
            readonly artifactId: "mysql-connector-j";
        };
        readonly r2dbc: {
            readonly groupId: "io.asyncer";
            readonly artifactId: "r2dbc-mysql";
        };
        readonly testContainer: {
            readonly groupId: "org.testcontainers";
            readonly artifactId: "mysql";
            readonly scope: "test";
        };
    };
    readonly postgresql: {
        readonly jdbc: {
            readonly groupId: "org.postgresql";
            readonly artifactId: "postgresql";
        };
        readonly r2dbc: {
            readonly groupId: "org.postgresql";
            readonly artifactId: "r2dbc-postgresql";
        };
        readonly testContainer: {
            readonly groupId: "org.testcontainers";
            readonly artifactId: "postgresql";
            readonly scope: "test";
        };
    };
    readonly oracle: {
        readonly jdbc: {
            readonly groupId: "com.oracle.database.jdbc";
            readonly artifactId: "ojdbc8";
        };
        readonly testContainer: {
            readonly groupId: "org.testcontainers";
            readonly artifactId: "oracle-xe";
            readonly scope: "test";
        };
    };
    readonly h2: {
        readonly jdbc: {
            readonly groupId: "com.h2database";
            readonly artifactId: "h2";
        };
        readonly r2dbc: {
            readonly groupId: "io.r2dbc";
            readonly artifactId: "r2dbc-h2";
        };
    };
};
export declare const getDatabaseDriverForDatabase: (databaseType: string) => any;
export declare const getH2MavenDefinition: ({ prodDatabaseType, packageFolder, }: {
    prodDatabaseType: string;
    packageFolder: string;
}) => DatabaseTypeDependencies;
export declare const getDatabaseTypeMavenDefinition: (databaseType: string, options: {
    inProfile?: string;
    javaDependencies: Record<string, string>;
}) => DatabaseTypeDependencies;
export {};
