import { AutoBeDatabase, AutoBeInterfaceSchemaDesign, AutoBeOpenApi } from "@autobe/interface";
import { ILlmApplication, IValidation } from "typia";
export declare namespace AutoBeInterfaceSchemaProgrammer {
    interface IDatabaseSchemaMember {
        key: string;
        nullable: boolean;
        /**
         * Database column type for type compatibility validation.
         *
         * - `null` means this member is a relation (object/array), not a column, so
         *   primitive type checking should be skipped.
         */
        type: AutoBeDatabase.IPlainField["type"] | null;
    }
    const getDatabaseSchemaName: (typeName: string) => string;
    const getNeighborDatabaseSchemas: (props: {
        typeName: string;
        application: AutoBeDatabase.IApplication;
    }) => AutoBeDatabase.IModel[] | undefined;
    const getDatabaseSchemaProperties: (props: {
        everyModels: AutoBeDatabase.IModel[];
        model: AutoBeDatabase.IModel;
    }) => IDatabaseSchemaMember[];
    const validate: (props: {
        errors: IValidation.IError[];
        path: string;
        everyModels: AutoBeDatabase.IModel[];
        operations: AutoBeOpenApi.IOperation[];
        typeName: string;
        design: AutoBeInterfaceSchemaDesign;
    }) => void;
    const fixApplication: (props: {
        application: ILlmApplication;
        everyModels: AutoBeDatabase.IModel[];
    }) => void;
}
