import { DBAdapterOptions, IDBBulkQuery, IDBError, IDBQuery, IDBQueryField, IDBResult, IDBStatFrame } from "../DBService"; import { IDBAdapter } from "./IDBAdapter"; import mysql from 'mysql2/promise'; import fs from 'fs'; interface ITransaction { id: number; timestamp: number; conn: mysql.PoolConnection; queries: { sql: string; status: string; }[]; } export declare class MysqlAdapter implements IDBAdapter { options: DBAdapterOptions; serviceStarted: boolean; reconnectionTimeout: number; reconnecting: boolean; pool: mysql.Pool | null; timeoutID: any; queries: never[]; static nextTransactionID: number; transactions: ITransaction[]; maxTransactionWaitTime: number; lastSuccessQueryTime: number; pingInterval: number; failReportFileStream: fs.WriteStream | null; failReportFileStreamName: string | null; failReportLastAccessTime: number; poolConnections: number; acquiredPoolConnections: number; statFrames: Map; constructor(options: DBAdapterOptions); escape(value: string): string; stat(): Map; private statRetentionMs; private getOrCreateStatSlot; collectStat(query: string, execTime: number, failed: boolean): void; collectTransactionStat(): void; init(): Promise; poolStatus(): { lastSuccessQueryTime: string; poolConnections: number; acquiredPoolConnections: number; }; isCleanupRunning: boolean; setupTimers(): void; recreatePool(): Promise; tBegin(): Promise; tCommit(trxid: number): Promise; tRollback(trxid: number): Promise; bulk(request: IDBBulkQuery): Promise; getConnection(transactionId?: number): Promise; withTimeout(promise: Promise, ms: number, query: string): Promise; query(request: IDBQuery, conn?: mysql.PoolConnection): Promise; finalizeConnection(conn: mysql.PoolConnection): void; prepareQuery(request: IDBQuery): string; static safeReplace(query: string, key: string, value: string): string; static prepareQueryFieldValue(field: IDBQueryField): string | number | boolean | null | undefined; prepareCountQuery(query: string): string; commit(trx: ITransaction): Promise; rollbackTransaction(trx: ITransaction, donNotRemove?: boolean): Promise; finish(): Promise; createMysqlQueryError(err: any, throwable?: boolean): IDBError; storeTransactionAsProblem(trx: ITransaction, message: string): Promise; } export declare function isError(obj: any): obj is IDBError; export {};