import type { TMultimodalPrompt, TUserPrompt } from '../common';
import type { AbstractInterface } from '../device';
import type { ElementCacheFeature, LocateResultElement, PlanningLocateParam, Rect, UIContext } from '../types';
import type { TaskCache } from './task-cache';
export declare function commonContextParser(interfaceInstance: AbstractInterface, _opt: {
    uploadServerUrl?: string;
}): Promise<UIContext>;
export declare function getReportFileName(tag?: string): string;
export declare function printReportMsg(filepath: string): void;
/**
 * Get the current execution file name
 * @returns The name of the current execution file
 */
export declare function getCurrentExecutionFile(trace?: string): string | false;
export declare function generateCacheId(fileName?: string): string;
export declare function ifPlanLocateParamIsBbox(planLocateParam: PlanningLocateParam): boolean;
export declare function matchElementFromPlan(planLocateParam: PlanningLocateParam): LocateResultElement | undefined;
export declare function matchElementFromCache(context: {
    taskCache?: TaskCache;
    interfaceInstance: AbstractInterface;
}, cacheEntry: ElementCacheFeature | undefined, cachePrompt: TUserPrompt, cacheable: boolean | undefined): Promise<LocateResultElement | undefined>;
export declare const getMidsceneVersion: () => string;
export declare const parsePrompt: (prompt: TUserPrompt) => {
    textPrompt: string;
    multimodalPrompt?: TMultimodalPrompt;
};
/**
 * Transform coordinates from screenshot coordinate system to logical coordinate system.
 * When shrunkShotToLogicalRatio > 1, the screenshot is larger than logical size,
 * so we need to divide coordinates by shrunkShotToLogicalRatio.
 *
 * @param element - The locate result element with coordinates in screenshot space
 * @param shrunkShotToLogicalRatio - The ratio of screenshot size to logical size
 * @returns A new element with coordinates transformed to logical space
 */
export declare const transformScreenshotElementToLogical: (element: LocateResultElement, shrunkShotToLogicalRatio: number) => LocateResultElement;
export declare const transformLogicalElementToScreenshot: (element: LocateResultElement, shrunkShotToLogicalRatio: number) => LocateResultElement;
export declare const transformLogicalRectToScreenshotRect: (rect: Rect, shrunkShotToLogicalRatio: number) => Rect;
