import type { AbstractInterface } from '../device';
import type Service from '../service';
import type { DetailedLocateParam, DeviceAction, ExecutionTaskApply, PlanningAction, PlanningLocateParam } from '../types';
import type { IModelConfig } from '@midscene/shared/env';
import type { TaskCache } from './task-cache';
export declare function locatePlanForLocate(param: string | DetailedLocateParam): PlanningAction<PlanningLocateParam>;
interface TaskBuilderDeps {
    interfaceInstance: AbstractInterface;
    service: Service;
    taskCache?: TaskCache;
    actionSpace: DeviceAction[];
    waitAfterAction?: number;
}
interface BuildOptions {
    cacheable?: boolean;
    deepLocate?: boolean;
}
export declare class TaskBuilder {
    private readonly interface;
    private readonly service;
    private readonly taskCache?;
    private readonly actionSpace;
    private readonly waitAfterAction?;
    constructor({ interfaceInstance, service, taskCache, actionSpace, waitAfterAction, }: TaskBuilderDeps);
    build(plans: PlanningAction[], modelConfigForPlanning: IModelConfig, modelConfigForDefaultIntent: IModelConfig, options?: BuildOptions): Promise<{
        tasks: ExecutionTaskApply[];
    }>;
    private handleFinishedPlan;
    private handleLocatePlan;
    private handleActionPlan;
    private createLocateTask;
}
export {};
