import type { Cookie } from '../types';
import { type Logger } from '@applitools/logger';
import { type Fetch, type Proxy } from '@applitools/req';
import { type UrlResource, type ContentfulResource, FailedResource } from './resource';
type Options = {
    concurrency?: number;
    accessToken?: string;
    eyesServerUrl?: string;
    apiKey?: string;
    tunnelIds?: string;
    timeout?: number;
    streamingTimeout?: number;
    retryLimit?: number;
    cache?: Map<string, Promise<ContentfulResource | FailedResource>>;
    fetch?: Fetch;
    logger: Logger;
};
export type FetchResourceSettings = {
    proxy?: Proxy;
    autProxy?: Proxy & {
        mode?: 'Allow' | 'Block';
        domains?: string[];
    };
    cookies?: Cookie[];
    headers?: Record<string, string | undefined>;
};
export type FetchResource = (options: {
    resource: UrlResource;
    settings?: FetchResourceSettings;
    logger?: Logger;
}) => Promise<ContentfulResource | FailedResource>;
export declare function makeFetchResource({ accessToken, eyesServerUrl, apiKey, tunnelIds, concurrency, retryLimit, timeout, streamingTimeout, cache, fetch, logger: mainLogger, }: Options): FetchResource;
export {};
