import { InvocationExpr, Model } from '@zenstackhq/language/ast';
import { PluginOptions } from '@zenstackhq/sdk';
import { FunctionCall as PrismaFunctionCall } from './prisma-builder';
/**
 * Generates Prisma schema file
 */
export declare class PrismaSchemaGenerator {
    private readonly zmodel;
    private zModelGenerator;
    private readonly PRELUDE;
    private mode;
    private customAttributesAsComments;
    private shortNameMap;
    constructor(zmodel: Model);
    generate(options: PluginOptions): Promise<{
        warnings: string[];
        shortNameMap: Map<string, string>;
    }>;
    private generateDataSource;
    private configExprToText;
    private configArrayToText;
    private configInvocationArgToText;
    private literalToText;
    private exprToText;
    private generateGenerator;
    private generateModel;
    private generateDelegateRelationForBase;
    private generateDelegateRelationForConcrete;
    private expandPolymorphicRelations;
    private replicateForeignKey;
    private replicateForeignKeyModelLevelUnique;
    private truncate;
    private ensureRelationsInheritedFromDelegate;
    private findUpMatchingFieldFromDelegate;
    private getOppositeRelationField;
    private getRelationName;
    private get supportNamedConstraints();
    private isPrismaAttribute;
    private getUnsupportedFieldType;
    private generateModelField;
    private setDummyDefault;
    private ensureSupportingTypeDefFields;
    private isInheritedFromDelegate;
    private makeFieldAttribute;
    private makeAttributeArg;
    private makeAttributeArgValue;
    makeFunctionCall(node: InvocationExpr): PrismaFunctionCall;
    private generateContainerAttribute;
    private generateEnum;
    private generateEnumField;
    private getCustomAttributesAsComments;
}
