import { AutoBeProgressEventBase, AutoBeTestValidateEvent } from "@autobe/interface";
import { ILlmController } from "typia";
import { AutoBeContext } from "../../../context/AutoBeContext";
import { IAutoBeTestCorrectOverallApplication } from "../structures/IAutoBeTestCorrectOverallApplication";
import { IAutoBeTestProcedure } from "../structures/IAutoBeTestProcedure";
interface IProgrammer<Procedure extends IAutoBeTestProcedure, Complete extends IAutoBeTestCorrectOverallApplication.IProps> {
    controller(next: {
        procedure: Procedure;
        build: (next: Complete) => void;
    }): ILlmController;
    replaceImportStatements(procedure: Procedure): Promise<string>;
    compile(procedure: Procedure): Promise<AutoBeTestValidateEvent<Procedure["function"]>>;
}
export declare function orchestrateTestCorrectOverall<Procedure extends IAutoBeTestProcedure, Complete extends IAutoBeTestCorrectOverallApplication.IProps>(ctx: AutoBeContext, props: {
    programmer: IProgrammer<Procedure, Complete>;
    procedures: Procedure[];
    instruction: string;
    progress: AutoBeProgressEventBase;
    discard: boolean;
}): Promise<Procedure[]>;
export {};
