export declare class Pool { private objs; private isAlive; private objsIdMap; private availableIds; private currentSize; private arr; private createFn; constructor(createFn: () => T, initialSize?: number); private expand; get: (id: number) => T; obtain(): T; free(obj: T | number): void; clear(): void; forEach(fn: (obj: T, i: number) => void): void; getAll: () => T[]; count: () => number; } export declare function createPool(createFn: () => T, initialSize?: number): Pool;