import { AutoBeOpenApi, AutoBeProgressEventBase, AutoBeTestPrepareFunction, AutoBeTestPrepareMapping, AutoBeTestValidateEvent, IAutoBeCompiler } from "@autobe/interface";
import { IValidation } from "typia";
import { AutoBeContext } from "../../../context/AutoBeContext";
import { IAutoBeTestPrepareProcedure } from "../structures/IAutoBeTestPrepareProcedure";
export declare namespace AutoBeTestPrepareProgrammer {
    function is(key: string, value: AutoBeOpenApi.IJsonSchema): boolean;
    function size(document: AutoBeOpenApi.IDocument): number;
    function getFunctionName(typeName: string): string;
    function writeTemplateCode(props: {
        typeName: string;
        schema: AutoBeOpenApi.IJsonSchema.IObject;
    }): string;
    function writeNonPropertyCode(props: {
        typeName: string;
        schema: AutoBeOpenApi.IJsonSchema.IObject;
    }): string;
    function writeStructures(ctx: AutoBeContext, typeName: string): Promise<Record<string, string>>;
    function compile(props: {
        compiler: IAutoBeCompiler;
        document: AutoBeOpenApi.IDocument;
        procedure: IAutoBeTestPrepareProcedure;
        progress: AutoBeProgressEventBase;
        step: number;
    }): Promise<AutoBeTestValidateEvent<AutoBeTestPrepareFunction>>;
    function replaceImportStatements(props: {
        compiler: IAutoBeCompiler;
        typeName: string;
        schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
        content: string;
    }): Promise<string>;
    function validate(props: {
        typeName: string;
        schema: AutoBeOpenApi.IJsonSchema.IObject;
        mappings: AutoBeTestPrepareMapping[];
        draft: string;
        revise: {
            final: string | null;
        };
    }): IValidation.IError[];
}
