import type { Database } from '@gemini-testing/sql.js';
import { DbLoadResult } from './common';
import { ReporterConfig } from '../types';
import { Tree } from '../tests-tree-builder/base';
import { ReporterTestResult } from '../adapters/test-result';
import { SqliteClient } from '../sqlite-client';
export * from './common';
export declare const makeSqlDatabaseFromData: (data: Buffer | undefined) => Promise<Database & {
    filename: string;
}>;
export declare const makeSqlDatabaseFromFile: (dbPath: string | null) => Promise<Database & {
    filename: string;
}>;
export declare const prepareUrls: (urls: string[], baseUrl: string) => string[];
export interface DownloadDatabasesOptions {
    pluginConfig: Pick<ReporterConfig, 'path'>;
    strict?: boolean;
}
export declare const resolveDatabaseUrlsJsonPath: (reportPathOrUrl: string) => Promise<string>;
export declare function downloadDatabases(dbJsonUrls: string[], opts: DownloadDatabasesOptions): Promise<(string | DbLoadResult)[]>;
export declare function mergeDatabases(srcDbPaths: string[], reportPath: string): Promise<void>;
export declare function getTestsTreeFromDatabase(dbPath: string, baseHost: string): Promise<Tree>;
export declare function downloadSingleDatabase(dbUrl: string, { pluginConfig }: {
    pluginConfig: Pick<ReporterConfig, 'path'>;
}): Promise<string>;
export declare const getTestFromDb: <T = unknown>(dbClient: SqliteClient, testResult: ReporterTestResult) => T | undefined;
