/// <reference types="node" />
import { type Pool as GenericPool } from 'generic-pool';
import { EventEmitter } from 'events';
import Memcached, { type MemcachedOptions } from './memcached';
export type PoolOptions = {
    max: number;
    min: number;
    acquireTimeoutMillis: number;
    destroyTimeoutMillis: number;
    maxWaitingClients: number;
    idleTimeoutMillis: number;
    autostart: boolean;
    fifo: boolean;
    evictionRunIntervalMillis: number;
} & MemcachedOptions;
export default class Pool extends EventEmitter {
    pool: GenericPool<Memcached>;
    opts: PoolOptions;
    constructor(port: number, host: string, opts?: any);
    ready(): Promise<unknown>;
    use(fn: (client: Memcached) => Promise<any>): Promise<any>;
    flush(): Promise<any>;
    set(key: string, value: string | number, ttl?: number): Promise<boolean>;
    add(key: string, value: string | number, ttl?: number): Promise<boolean>;
    get(key: string): Promise<string | false>;
    del(key: string): Promise<boolean>;
    incr(key: string, value?: number): Promise<number | false>;
    decr(key: string, value?: number): Promise<number | false>;
    ping(): Promise<boolean>;
    end(): Promise<void>;
}
