import { type SupportedBrowsers, type HookOrder, type TargetMetric, type MetricObserver, type BrowserDeveloperToolsClient } from '../types/index.js';
export declare class MetricsEngine {
    /**
     * Client reference to the browser
     */
    private browser;
    /**
     * Options for connection to the browser
     */
    private browserOptions;
    /**
     * Starts client
     *
     * @param browser which client to setup
     */
    setupBrowser(browser: SupportedBrowsers | string, options: Record<string, any>): Promise<boolean>;
    /**
     * Shutdown client
     */
    destroy(): void;
    /**
     * Get current running client
     */
    getBrowser(): SupportedBrowsers | undefined;
    /**
     * Dispatches metric fetch from browser and return metric
     *
     * @param metric which metric to measure
     * @param hookOrder step to run
     */
    getMetric(metric: MetricObserver<BrowserDeveloperToolsClient[SupportedBrowsers]>, hookOrder: HookOrder): Promise<TargetMetric[] | undefined>;
}
