import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings } from './types';
import { type Logger } from '@applitools/logger';
import { type SpecType, type SpecDriver } from '@applitools/driver';
type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
    type?: TType;
    eyes: Eyes<TSpec, TType>;
    target?: DriverTarget<TSpec>;
    spec?: SpecDriver<TSpec>;
    logger: Logger;
};
export declare function makeCheckAndClose<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
    type?: TType | undefined;
    target?: Target<TSpec, TType> | undefined;
    settings?: (CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>) | undefined;
    config?: (Config<TSpec, TDefaultType> & Config<TSpec, TType>) | undefined;
    logger?: Logger | undefined;
}) => Promise<void>;
export {};
