import { Transaction, TransactionOptions, IsolationLevel } from '../types.js'; export declare abstract class Dialect, Q> { readonly name: string; readonly config: T; protected constructor(name: string, config: T); abstract isConnected(): boolean; abstract connect(): Promise; abstract disconnect(): Promise; abstract healthCheck(): Promise; abstract query(query: Q, params?: any[]): Promise; abstract mapColumnType(type: string): string; abstract quoteIdentifier(identifier: string | number | symbol): string; abstract getParameterPlaceholder(index: number): string; abstract getStatementTerminator(): string; abstract formatBoolean(value: boolean): string; abstract formatDate(value: Date): string; abstract formatJson(value: any): string; abstract escapeString(value: string): string; abstract formatDefaultValue(value: any): string; abstract formatLimit(limit: number): string; abstract formatOffset(offset: number): string; abstract formatLimitOffset(limit: number, offset: number): string; abstract formatCreateTable(tableName: T, columns: string[]): string; abstract formatAlterTable(tableName: T, alterations: string[]): string; abstract formatDropTable(tableName: T, ifExists?: boolean): string; abstract formatDropIndex(indexName: string, tableName: T, ifExists?: boolean): string; abstract dispose(): Promise; /** * 是否支持事务 */ supportsTransactions(): boolean; /** * 开始事务 */ beginTransaction(options?: TransactionOptions): Promise; /** * 格式化事务隔离级别 */ formatIsolationLevel(level: IsolationLevel): string; /** * 格式化聚合函数 */ formatAggregate(fn: string, field: string, alias?: string): string; } export declare namespace Dialect { type Creator, Q> = (config: D) => Dialect; type Constructor, Q> = new (config: D) => Dialect; type Factory, Q> = Creator | Constructor; function isConstructor, Q>(fn: Factory): fn is Constructor; } //# sourceMappingURL=dialect.d.ts.map