import { ConnectionOptions as MySQLConnectionOptions, Connection as MySQLConnection } from "mysql2/promise";
export declare type ConnectionTypes = "mysql";
export declare type ConnectionDetails<T extends ConnectionTypes> = T extends "mysql" ? MySQLConnectionOptions : never;
export declare type ConnectionType<T extends ConnectionTypes> = T extends "mysql" ? MySQLConnection : never;
export declare type ConnectionOptions<T extends ConnectionTypes> = ConnectionDetails<T>;
export declare type ConnectionConfiguration<T extends ConnectionTypes> = {
    type: T;
    options: ConnectionOptions<T>;
    logs: boolean;
};
export declare class Connection<T extends ConnectionTypes = "mysql"> {
    Connection?: ConnectionType<T>;
    Configuration: ConnectionConfiguration<T>;
    constructor(type: T, options: ConnectionOptions<T>, logs?: boolean);
    connect(): Promise<ConnectionType<T>>;
    get(): Promise<ConnectionType<T>>;
    end(): this;
    getConfig(): ConnectionConfiguration<T>;
}
