// Type definitions for node-pool 3.1 // Derived from https://github.com/DefinitelyTyped/DefinitelyTyped // -> https://github.com/DefinitelyTyped/DefinitelyTyped/blob/454dcbcbe5e932010b128dca9793758dd28adb45/types/generic-pool/index.d.ts /// import { EventEmitter } from "events"; export class Pool extends EventEmitter { spareResourceCapacity: number; size: number; available: number; borrowed: number; pending: number; max: number; min: number; start(): void; acquire(priority?: number): Promise; release(resource: T): Promise; destroy(resource: T): Promise; drain(): Promise; clear(): Promise; use(cb: (resource: T) => U | Promise): Promise; isBorrowedResource(resource: T): boolean; } export interface Factory { create(): Promise; destroy(client: T): Promise; validate?(client: T): Promise; } export interface Options { max?: number; min?: number; maxWaitingClients?: number; testOnBorrow?: boolean; testOnReturn?: boolean; acquireTimeoutMillis?: number; fifo?: boolean; priorityRange?: number; autostart?: boolean; evictionRunIntervalMillis?: number; numTestsPerEvictionRun?: number; softIdleTimeoutMillis?: number; idleTimeoutMillis?: number; } export function createPool(factory: Factory, opts?: Options): Pool;