import { AutoBeRealizeCorrectEvent, AutoBeRealizeValidateEvent, AutoBeTestCorrectEvent, AutoBeTestValidateEvent, IAutoBeTokenUsageJson, IAutoBeTypeScriptCompileResult } from "@autobe/interface";
import { ILlmSchema } from "@samchon/openapi";
import { AutoBeContext } from "../../context/AutoBeContext";
interface IFactoryProps<ValidateEvent extends AutoBeTestValidateEvent | AutoBeRealizeValidateEvent, CorrectEvent extends AutoBeTestCorrectEvent | AutoBeRealizeCorrectEvent> {
    validate(script: string): Promise<ValidateEvent>;
    correct(next: {
        failure: IAutoBeTypeScriptCompileResult.IFailure;
        think: string;
        draft: string;
        review: string | undefined;
        final: string | undefined;
        tokenUsage: IAutoBeTokenUsageJson.IComponent;
    }): CorrectEvent;
    script(event: ValidateEvent): string;
    source: "testCorrect" | "realizeCorrect";
}
export declare const orchestrateCommonCorrectCasting: <Model extends ILlmSchema.Model, ValidateEvent extends AutoBeTestValidateEvent | AutoBeRealizeValidateEvent, CorrectEvent extends AutoBeTestCorrectEvent | AutoBeRealizeCorrectEvent>(ctx: AutoBeContext<Model>, factory: IFactoryProps<ValidateEvent, CorrectEvent>, script: string) => Promise<ValidateEvent>;
export {};
