import type { DMMF as PrismaDMMF } from '@prisma/generator-helper';
import { TransformerParams } from './types';
import { SourceFile } from 'ts-morph';
export default class Transformer {
    sourceFile: SourceFile;
    name: string;
    fields: (PrismaDMMF.SchemaArg | PrismaDMMF.Field)[];
    enumType: Partial<PrismaDMMF.SchemaEnum>;
    static enumNames: string[];
    private static outputPath;
    private hasJson;
    static isDefaultPrismaClientOutput?: boolean;
    static prismaClientOutputPath?: string;
    constructor(params: TransformerParams);
    static setOutputPath(outPath: string): void;
    getPrismaStringLine(field: PrismaDMMF.SchemaArg, inputType: PrismaDMMF.SchemaArgInputType, inputsLength: number): string;
    wrapWithZodValidators(mainValidator: string, field: PrismaDMMF.SchemaArg, inputType: PrismaDMMF.SchemaArgInputType): string;
    getObjectSchemaLine(field: PrismaDMMF.SchemaArg): [string, PrismaDMMF.SchemaArg, boolean][];
    getFieldValidators(zodStringWithMainType: string, field: PrismaDMMF.SchemaArg): string;
    addZodImport(): void;
    addPrismaTypeImport(): void;
    addFieldsSchemaImport(fields: PrismaDMMF.SchemaArg[], inObjectsPath?: boolean): void;
    getJsonSchemaImplementation(): string;
    getExportObjectSchema(schema: string, name: string): string;
    getExportSchema(schema: string, name: string): string;
    wrapWithZodObject(zodStringFields: string | string[]): string;
    wrapWithZodOUnion(zodStringFields: string[]): string;
    getZodObject(fields: PrismaDMMF.SchemaArg[]): string;
    printObjectSchemas(): SourceFile;
    printSelectObjectSchemas(isInclude?: boolean): SourceFile;
    printArgsObjectSchemas(modelName: string): SourceFile;
    printModelSchema(): SourceFile;
    printEnumSchemas(): SourceFile;
}
