import { Database, DatabaseCRUD, DatabaseTools, Result, Where, SelectOptions } from '../db'; import { Query } from './query'; import { Constants, Packet } from './parser'; import { EventNoticer } from '../event'; import { Options } from './opts'; export * from './opts'; export declare class ErrorPacket extends Packet { error: Error; type: Constants; constructor(err: Error); toJSON(): Error; } interface Callback { (err: Error | null, data?: Result[]): void; } export declare class Mysql implements Database { private _queue; private _connection; private _connecting; private _transaction; private _close; private _handlError; private _handlePacket; private _after; private _connect; private _write; private _exec; private _enqueue; private _dequeue; /** * is connection */ get connected(): boolean; readonly options: Options; readonly onError: EventNoticer; /** * constructor function */ constructor(options?: Options); statistics(): Promise; query(sql: string, cb?: Callback): Query; close(): void; transaction(): Promise; commit(): Promise; rollback(): Promise; /** * exec query database */ exec(sql: string): Promise; } export declare class MysqlTools implements DatabaseTools { private _name; private _load; private _db_struct; readonly options: Options; constructor(options?: Options); has(table: string): boolean; exec(sql: string): Promise; insert(table: string, row: Dict): Promise; insertSql(table: string, row: Dict): string; delete(table: string, where?: Where): Promise; deleteSql(table: string, where?: Where): string; update(table: string, row: Dict, where?: Where): Promise; updateSql(table: string, row: Dict, where?: Where): string; select(table: string, where?: Where, opts?: SelectOptions): Promise; selectSql(table: string, where?: Where, opts?: SelectOptions): string; selectCount(table: string, where?: Where, opts?: SelectOptions): Promise; selectOne(table: string, where?: Where, opts?: SelectOptions): Promise; query(sql: string): Promise; private _Sql; load(SQL: string, SQL_ALTER: string[], SQL_INDEXES: string[], id?: string): Promise; scope(cb: (db: DatabaseCRUD, self: DatabaseTools) => Promise): Promise; transaction(cb: (db: DatabaseCRUD, self: DatabaseTools) => Promise): Promise; db(): Database; }