import type { EntityMeta, FieldOptions, NamingStrategy, Type } from '../type/index.js';
/**
 * Base abstract class for all database dialects (SQL and NoSQL).
 */
export declare abstract class AbstractDialect {
    readonly namingStrategy?: NamingStrategy;
    constructor(namingStrategy?: NamingStrategy);
    /**
     * Resolve the table name for an entity, applying naming strategy if necessary.
     */
    resolveTableName<E>(entity: Type<E>, meta: EntityMeta<E>): string;
    /**
     * Resolve the column/field name for a property, applying naming strategy if necessary.
     */
    resolveColumnName(key: string, field: FieldOptions): string;
}
