export interface NamingStrategy { /**
     * Return a name of the class based on its file name
     */ getClassName ( file , separator ? ) : string ; /**
     * Return a table name for an entity class
     */ classToTableName ( entityName ) : string ; /**
     * Return a migration name. This name should allow ordering.
     */ classToMigrationName ( timestamp ) : string ; /**
     * Return a column name for a property
     */ propertyToColumnName ( propertyName ) : string ; /**
     * Return a column name for a property (used in `EntityGenerator`).
     */ columnNameToProperty ( columnName ) : string ; /**
     * Return the default reference column name
     */ referenceColumnName ( ) : string ; /**
     * Return a join column name for a property
     */ joinColumnName ( propertyName ) : string ; /**
     * Return a join table name
     */ joinTableName ( sourceEntity , targetEntity , propertyName ) : string ; /**
     * Return the foreign key column name for the given parameters
     */ joinKeyColumnName ( entityName , referencedColumnName ? , composite ? ) : string ; /**
     * Returns key/constraint name for given type. Some drivers might not support all the types (e.g. mysql and sqlite enforce the PK name).
     */ indexName ( tableName , columns , type ) : string ; /**
     * Returns alias name for given entity. The alias needs to be unique across the query, which is by default
     * ensured via appended index parameter. It is optional to use it as long as you ensure it will be unique.
     */ aliasName ( entityName , index ) : string ; }