import type { DbDataSource } from '@e-mc/types/lib/squared';

import type { DbConnection, SQL_COMMAND, ServerAuth } from '@e-mc/types/lib/db';
import type { AuthValue } from '@e-mc/types/lib/http';

declare namespace util {
    const SQL_COMMAND: SQL_COMMAND;
    function getBasicAuth(auth: AuthValue): string;
    function getBasicAuth(username: unknown, password?: unknown): string;
    function hasBasicAuth(value: string): boolean;
    function parseConnectionString(value: string, scheme?: string): DbConnection | null;
    function parseServerAuth(value: ServerAuth, all: boolean): ServerAuth;
    function parseServerAuth(value: ServerAuth, port?: number, all?: boolean): ServerAuth;
    function checkEmpty(value: unknown): boolean;
    function setUUIDKey(item: DbDataSource, value: unknown): void;
}

export = util;