import { GeneratorOptions } from '@prisma/generator-helper';

interface DMLModel {
    name: string;
    isEmbedded?: boolean;
    dbName: string | null;
    fields: DMLField[];
    idFields?: unknown[];
    uniqueFields?: unknown[];
    uniqueIndexes?: unknown[];
    isGenerated?: boolean;
    primaryKey?: {
        name: string | null;
        fields: string[];
    } | null;
}
interface DMLField {
    name: string;
    hasDefaultValue: boolean;
    isGenerated: boolean;
    isId: boolean;
    isList: boolean;
    isReadOnly: boolean;
    isRequired: boolean;
    isUnique: boolean;
    isUpdatedAt: boolean;
    kind: 'scalar' | 'object' | 'enum';
    type: string;
    relationFromFields?: unknown[];
    relationName?: string;
    relationOnDelete?: string;
    relationToFields?: unknown[];
    default?: unknown;
}

declare function parseDatamodel(engine: string, model: string, tmpDir: string): Promise<string>;
declare const mapPrismaToDb: (dmlModels: DMLModel[], dataModel: string) => {
    fields: DMLField[];
    name: string;
    isEmbedded?: boolean;
    dbName: string | null;
    idFields?: unknown[];
    uniqueFields?: unknown[];
    uniqueIndexes?: unknown[];
    isGenerated?: boolean;
    primaryKey?: {
        name: string | null;
        fields: string[];
    } | null;
}[];
declare const _default: (options: GeneratorOptions) => Promise<void>;

export { _default as default, mapPrismaToDb, parseDatamodel };
