import type * as Core from '@applitools/core';
import { type Logger } from '@applitools/logger';
import { RunnerOptions, RunnerOptionsFluent } from './input/RunnerOptions';
import { TestResultsSummaryData } from './output/TestResultsSummary';
export declare abstract class EyesRunner {
    private _core?;
    private _manager?;
    readonly _maskLog: boolean;
    abstract readonly type: 'classic' | 'ufg';
    /** @internal */
    protected readonly _managerSettings: Core.ManagerSettings;
    /** @internal */
    protected readonly _getResultsSettings: Core.GetManagerResultsSettings<'classic' | 'ufg'>;
    constructor(options?: RunnerOptions);
    /** @internal */
    attach<TSpec extends Core.SpecType = Core.SpecType>(core: Core.Core<TSpec, 'classic' | 'ufg'>): void;
    /** @internal */
    openEyes<TSpec extends Core.SpecType = Core.SpecType>(options: {
        target: TSpec['driver'];
        config?: Core.Config<TSpec, 'classic' | 'ufg'>;
        logger?: Logger;
        on?: (name: string, data?: Record<string, any>) => void;
    }): Promise<Core.Eyes<TSpec, 'classic' | 'ufg'>>;
    getAllTestResults(throwErr?: boolean): Promise<TestResultsSummaryData>;
}
export declare class VisualGridRunner extends EyesRunner {
    readonly type: "ufg";
    constructor(options?: RunnerOptions);
    /** @deprecated */
    constructor(options?: RunnerOptionsFluent);
    /** @deprecated */
    constructor(legacyConcurrency?: number);
    get testConcurrency(): number | undefined;
    /** @deprecated */
    get legacyConcurrency(): number | undefined;
    /** @deprecated */
    getConcurrentSessions(): number | undefined;
}
export declare class ClassicRunner extends EyesRunner {
    readonly type: "classic";
}
