import { RowDataPacket, OkPacket, FieldPacket, QueryOptions, ConnectionOptions, PoolOptions } from './index'; import { EventEmitter } from 'events'; export * from './index'; export interface Connection extends EventEmitter { config: ConnectionOptions; threadId: number; connect(): Promise; ping(): Promise; beginTransaction(): Promise; commit(): Promise; rollback(): Promise; changeUser(options: ConnectionOptions): Promise; query( sql: string ): Promise<[T, FieldPacket[]]>; query( sql: string, values: any | any[] | { [param: string]: any } ): Promise<[T, FieldPacket[]]>; query( options: QueryOptions ): Promise<[T, FieldPacket[]]>; query( options: QueryOptions, values: any | any[] | { [param: string]: any } ): Promise<[T, FieldPacket[]]>; execute< T extends RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] >( sql: string ): Promise<[T, FieldPacket[]]>; execute< T extends RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] >( sql: string, values: any | any[] | { [param: string]: any } ): Promise<[T, FieldPacket[]]>; execute< T extends RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] >( options: QueryOptions ): Promise<[T, FieldPacket[]]>; execute< T extends RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] >( options: QueryOptions, values: any | any[] | { [param: string]: any } ): Promise<[T, FieldPacket[]]>; unprepare(sql: string): void; end(options?: any): Promise; destroy(): void; pause(): void; resume(): void; escape(value: any): string; escapeId(value: string): string; escapeId(values: string[]): string; format(sql: string, values?: any | any[] | { [param: string]: any }): string; } export interface PoolConnection extends Connection { release(): void; } export interface Pool extends EventEmitter { query( sql: string ): Promise<[T, FieldPacket[]]>; query( sql: string, values: any | any[] | { [param: string]: any } ): Promise<[T, FieldPacket[]]>; query( options: QueryOptions ): Promise<[T, FieldPacket[]]>; query( options: QueryOptions, values: any | any[] | { [param: string]: any } ): Promise<[T, FieldPacket[]]>; execute< T extends RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] >( sql: string ): Promise<[T, FieldPacket[]]>; execute< T extends RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] >( sql: string, values: any | any[] | { [param: string]: any } ): Promise<[T, FieldPacket[]]>; execute< T extends RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] >( options: QueryOptions ): Promise<[T, FieldPacket[]]>; execute< T extends RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] >( options: QueryOptions, values: any | any[] | { [param: string]: any } ): Promise<[T, FieldPacket[]]>; getConnection(): Promise; on(event: 'connection', listener: (connection: PoolConnection) => any): this; on(event: 'acquire', listener: (connection: PoolConnection) => any): this; on(event: 'release', listener: (connection: PoolConnection) => any): this; on(event: 'enqueue', listener: () => any): this; end(): Promise; } export function createConnection(connectionUri: string): Promise; export function createConnection( config: ConnectionOptions ): Promise; export function createPool(config: PoolOptions): Pool;