import type { Core, EyesManager, ManagerSettings } from './types';
import type { Core as BaseCore } from '@applitools/core-base';
import { type AsyncCache, type UFGClient } from '@applitools/ufg-client';
import { type NMLClient } from '@applitools/nml-client';
import { type Logger } from '@applitools/logger';
import { type SpecType, type SpecDriver } from '@applitools/driver';
type Options<TSpec extends SpecType> = {
    spec?: SpecDriver<TSpec>;
    clients?: {
        ufg?: UFGClient;
        nml?: NMLClient;
    };
    core: Core<TSpec>;
    base?: BaseCore;
    agentId?: string;
    environment?: Record<string, any>;
    cwd?: string;
    logger: Logger;
    asyncCache?: AsyncCache;
};
export declare function makeMakeManager<TSpec extends SpecType>({ spec, clients, core, base: defaultBase, agentId: defaultAgentId, environment, cwd, logger: mainLogger, asyncCache, }: Options<TSpec>): <TType extends "classic" | "ufg" = "classic">({ type, settings, logger, }?: {
    type?: TType | undefined;
    settings?: ManagerSettings | undefined;
    logger?: Logger | undefined;
}) => Promise<EyesManager<TSpec, TType>>;
export {};
