import { Readable } from 'stream'; import { IQueryable } from './IQueryable'; import { IsolationLevel } from './IsolationLevel'; import { IDatabasePosition } from './IDatabasePosition'; import { TransactionAccessLevel } from './TransactionAccessLevel'; export interface IDatabaseConnection { setInstantiationStack(stack: string): void; getInstantiationStack(): string; getAPI(): any; isReadOnly(): boolean; isMaster(): boolean; isReplication(): boolean; hasReplicationEnabled(): boolean; setTimeout(timeout: number): void; getTimeout(): number; query(query: IQueryable, params?: any): Promise; /** * @deprecated - Streaming queries does not support post processing, creating a confusing API */ stream(query: IQueryable, params?: any, streamOptions?: any): Readable; close(forceClose?: boolean): Promise; isClosed(): boolean; startTransaction(level?: IsolationLevel, accessLevel?: TransactionAccessLevel): Promise; isTransaction(): boolean; commit(): Promise; rollback(): Promise; /** * @since 8.4.0 * @param query * @param params */ formatQuery(query: IQueryable): string; /** * @since 8.1.0 */ getCurrentDatabasePosition(): Promise; }