import type { UFGServerSettings, RenderTarget, GetActualEnvironmentSettings, ActualEnvironment, RenderSettings, RenderResult } from '../types';
import { type ContentfulResource } from '../resources/resource';
import { type Logger } from '@applitools/logger';
export type RenderRequest = {
    target: RenderTarget;
    settings: RenderSettings;
};
export type StartedRender = {
    jobId: string;
    renderId: string;
    status: string;
};
export interface UFGRequests {
    startRenders(options: {
        requests: RenderRequest[];
        logger?: Logger;
    }): Promise<StartedRender[]>;
    checkRenderResults(options: {
        renders: StartedRender[];
        logger?: Logger;
    }): Promise<RenderResult[]>;
    uploadResource(options: {
        resource: ContentfulResource;
        logger?: Logger;
    }): Promise<void>;
    checkResources(options: {
        resources: ContentfulResource[];
        logger?: Logger;
    }): Promise<(boolean | null)[]>;
    getActualEnvironments(options: {
        settings: GetActualEnvironmentSettings[];
        logger?: Logger;
    }): Promise<ActualEnvironment[]>;
    getChromeEmulationDevices(options?: {
        logger?: Logger;
    }): Promise<Record<string, any>>;
    getIOSDevices(options?: {
        logger?: Logger;
    }): Promise<Record<string, any>>;
    getAndroidDevices(options?: {
        logger?: Logger;
    }): Promise<Record<string, any>>;
}
export declare function makeUFGRequests({ settings, logger }: {
    settings: UFGServerSettings;
    logger?: Logger;
}): UFGRequests;
