import { DuckDBConnection, DuckDBInstance } from '@duckdb/node-api'; import { type DuckDBConnectionPool } from './client.ts'; /** Pool size presets for different MotherDuck instance types */ export type PoolPreset = 'pulse' | 'standard' | 'jumbo' | 'mega' | 'giga' | 'local' | 'memory'; /** Pool sizes optimized for each MotherDuck instance type */ export declare const POOL_PRESETS: Record; export interface DuckDBPoolConfig { /** Maximum concurrent connections. Defaults to 4. */ size?: number; /** Queue wait timeout in ms, excluding connection creation/setup. Defaults to 30000. */ acquireTimeout?: number; /** Maximum number of requests waiting for a connection. Defaults to 100. */ maxWaitingRequests?: number; /** Max time (ms) a connection may live before being recycled. */ maxLifetimeMs?: number; /** Max idle time (ms) before an idle connection is discarded. */ idleTimeoutMs?: number; } /** * Resolve pool configuration to a concrete size. * Returns false if pooling is disabled. */ export declare function resolvePoolSize(pool: DuckDBPoolConfig | PoolPreset | false | undefined): number | false; export interface DuckDBConnectionPoolOptions extends DuckDBPoolConfig { /** Optional setup hook for newly created connections. */ setup?: (connection: DuckDBConnection) => Promise; } export declare function createDuckDBConnectionPool(instance: DuckDBInstance, options?: DuckDBConnectionPoolOptions): DuckDBConnectionPool & { size: number; close(): Promise; stats(): DuckDBPoolStats; }; export interface DuckDBPoolStats { size: number; total: number; idle: number; leased: number; waiting: number; pending: number; created: number; recycled: number; queued: number; queueWaitMs: number; timedOut: number; closed: boolean; }