import { AutoBeDatabase, AutoBeOpenApi, AutoBeRealizeCollectorMapping, AutoBeRealizeCollectorPlan } from "@autobe/interface";
import { ILlmApplication, IValidation } from "typia";
import { AutoBeContext } from "../../../context/AutoBeContext";
export declare namespace AutoBeRealizeCollectorProgrammer {
    function filter(key: string): boolean;
    function getName(dtoTypeName: string): string;
    function getNeighbors(code: string): string[];
    function getMappingMetadata(props: {
        application: AutoBeDatabase.IApplication;
        model: AutoBeDatabase.IModel;
    }): AutoBeRealizeCollectorMapping.Metadata[];
    function writeTemplate(props: {
        plan: AutoBeRealizeCollectorPlan;
        body: AutoBeOpenApi.IJsonSchema;
        model: AutoBeDatabase.IModel;
        application: AutoBeDatabase.IApplication;
    }): string;
    function writeStructures(ctx: AutoBeContext, dtoTypeName: string): Promise<Record<string, string>>;
    function replaceImportStatements(ctx: AutoBeContext, props: {
        dtoTypeName: string;
        schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
        code: string;
    }): Promise<string>;
    function validate(props: {
        application: AutoBeDatabase.IApplication;
        plan: AutoBeRealizeCollectorPlan;
        mappings: AutoBeRealizeCollectorMapping[];
        neighbors: AutoBeRealizeCollectorPlan[];
        draft: string;
        revise: {
            review: string;
            final: string | null;
        };
    }): IValidation.IError[];
    const fixApplication: (props: {
        definition: ILlmApplication;
        application: AutoBeDatabase.IApplication;
        model: AutoBeDatabase.IModel;
    }) => void;
}
