import type { NamingStrategy } from './NamingStrategy.js'; import { type ReferenceKind } from '../enums.js'; /** Base class for naming strategies, providing default implementations for common naming conventions. */ export declare abstract class AbstractNamingStrategy implements NamingStrategy { getClassName(file: string, separator?: string): string; classToMigrationName(timestamp: string, customMigrationName?: string): string; indexName(tableName: string, columns: string[], type: 'primary' | 'foreign' | 'unique' | 'index' | 'sequence' | 'check' | 'default'): string; /** * @inheritDoc */ getEntityName(tableName: string, schemaName?: string): string; columnNameToProperty(columnName: string): string; /** * @inheritDoc */ getEnumClassName(columnName: string, tableName: string | undefined, schemaName?: string): string; /** * @inheritDoc */ getEnumTypeName(columnName: string, tableName: string | undefined, schemaName?: string): string; /** * @inheritDoc */ enumValueToEnumProperty(enumValue: string, columnName: string, tableName: string, schemaName?: string): string; aliasName(entityName: string, index: number): string; /** * @inheritDoc */ inverseSideName(entityName: string, propertyName: string, kind: ReferenceKind): string; /** * @inheritDoc */ manyToManyPropertyName(ownerEntityName: string, targetEntityName: string, pivotTableName: string, ownerTableName: string, schemaName?: string): string; /** * @inheritDoc */ discriminatorColumnName(baseName: string): string; abstract classToTableName(entityName: string, tableName?: string): string; abstract joinColumnName(propertyName: string): string; abstract joinKeyColumnName(entityName: string, referencedColumnName?: string, composite?: boolean, tableName?: string): string; abstract joinTableName(sourceEntity: string, targetEntity: string, propertyName?: string, tableName?: string): string; abstract propertyToColumnName(propertyName: string, object?: boolean): string; abstract referenceColumnName(): string; }