declare namespace FibPoolNS { type FirstParameter = T extends (arg: infer T, ...args: any[]) => any ? T : never; interface DippedItemStruct { close?: FibPoolOptionResult['destroy']; destroy?: FibPoolOptionResult['destroy']; dispose?: FibPoolOptionResult['destroy']; } interface FibPoolOptionArgs { create: (name: string) => T; destroy?: (item?: T) => any; maxsize?: number; timeout?: number; retry?: number | boolean; strict?: boolean; } interface FibPoolOptionResult { create: FibPoolOptionArgs['create']; destroy: FibPoolOptionArgs['destroy']; maxsize: FibPoolOptionArgs['maxsize']; timeout: FibPoolOptionArgs['timeout']; retry: FibPoolOptionArgs['retry']; strict: FibPoolOptionArgs['strict']; } interface FibPoolDipperFn { (o: T_CREATED_ITEM): T_POOL_FUNC_RETURN; } type FibPool = { (name: string, func: FibPoolDipperFn): T_RETURN; (func: FibPoolDipperFn): T_RETURN; } & { connections?(): number; info?(): { maxsize: number; count: number; running: number; wait: number; timeout: number; }; clear?(): void; }; } declare const _default: (_opt: FibPoolNS.FibPoolOptionArgs | ((name: string) => T_CREATED_ITEM), maxsize?: number, timeout?: number) => FibPoolNS.FibPool; export = _default;