import { ImportStatementParams, ParsedField } from './types';
export interface TemplateHelpersOptions {
    connectDtoPrefix: string;
    createDtoPrefix: string;
    updateDtoPrefix: string;
    dtoSuffix: string;
    entityPrefix: string;
    entitySuffix: string;
    transformClassNameCase?: (input: string) => string;
    transformFileNameCase?: (input: string) => string;
}
export declare class TemplateHelpers {
    private readonly connectDtoPrefix;
    private readonly createDtoPrefix;
    private readonly updateDtoPrefix;
    private readonly dtoSuffix;
    private readonly entityPrefix;
    private readonly entitySuffix;
    readonly transformClassNameCase: (input: string) => string;
    readonly transformFileNameCase: (input: string) => string;
    private readonly decoratorStrategy;
    static readonly PrismaScalarToTypeScript: Record<string, string>;
    static readonly knownPrismaScalarTypes: string[];
    constructor(options: TemplateHelpersOptions);
    static scalarToTS(scalar: string, useInputTypes?: boolean): string;
    static echo(input: string): string;
    static when(condition: unknown, thenTpl: string, elseTpl?: string): string;
    static unless(condition: unknown, thenTpl: string, elseTpl?: string): string;
    static each<T>(arr: T[], fn: (item: T) => string, joinWith?: string): string;
    static importStatement(input: ImportStatementParams): string;
    static importStatements(items: ImportStatementParams[]): string;
    private className;
    private fileName;
    entityName(name: string): string;
    connectDtoName(name: string): string;
    createDtoName(name: string): string;
    updateDtoName(name: string): string;
    connectDtoFilename(name: string, withExt?: boolean): string;
    createDtoFilename(name: string, withExt?: boolean): string;
    updateDtoFilename(name: string, withExt?: boolean): string;
    entityFilename(name: string, withExt?: boolean): string;
    fieldType(field: ParsedField, toInputType?: boolean): string;
    static hasSomeApiPropertyDoc(fields: ParsedField[]): boolean;
    static hasApiPropertyDoc(field: ParsedField): boolean;
    private addDecorator;
    private buildEntityDecorator;
    private buildDtoDecorator;
    private buildEnumDecorator;
    private buildFieldDecorator;
    fieldToDtoProp(field: ParsedField, useInputTypes?: boolean, forceOptional?: boolean, addExposePropertyDecorator?: boolean): string;
    fieldsToDtoProps(fields: ParsedField[], useInputTypes?: boolean, forceOptional?: boolean, addExposePropertyDecorator?: boolean): string;
    fieldToEntityProp(field: ParsedField): string;
    fieldsToEntityProps(fields: ParsedField[]): string;
    apiExtraModels(names: string[]): string;
    get config(): Omit<TemplateHelpersOptions, 'transformClassNameCase' | 'transformFileNameCase'>;
}
