declare global { namespace objPool { type Clas < T = { } > = new ( ... args ) => T ; interface IObj < onGetDataType = any > { /**
             * 对象池类型标志
             * 创建时赋值
             */ poolSign ? : string ; /**
             * 是否在对象池内
             * 创建时赋值
             */ isInPool ? : boolean ; /**
             * 对象池
             * 创建时赋值
             */ pool : objPool . IPool ; /**
             * 创建时
             */ onCreate ? ( ) : void ; /**
             * 当被取时
             */ onGet ( onGetData ) : void ; /**
             * 当被回收时
             * 做一些状态还原逻辑
             */ onReturn ? ( ) : void ; /**
             * 当被销毁时
             */ onKill ? ( ) : void ; } /**
         * 对象池的对象通用处理器
         */ interface IObjHandler < T = any , onGetDataType = any > { /**
             * 对象池
             * setObjHandler时赋值
             */ pool ? : objPool . IPool ; param obj onCreate ? ( obj ) : void ; param obj param onGetData onGet ( obj , onGetData ? ) : void ; param obj onReturn ? ( obj ) : void ; param obj onKill ? ( obj ) : void ; } interface IPoolInitOption < T = any , onGetDataType = any , Sign = any > { /**对象池标志 */ sign : Sign ; /**
             * 对象池阈值
             * size超过这个数则，则后续的对象回收就会直接销毁
             * 默认没有阈值，不作限制
             */ threshold ? : number ; /**对象创建函数 */ createFunc ? : ( ) => T ; /**对象构建类 */ clas ? : Clas < T > ; /**通用对象处理函数 */ objHandler ? : IObjHandler < T , onGetDataType > ; } interface IPool < T = any , onGetDataType = any > { /**
             * 对象数组
             */ poolObjs : T [ ] ; /**
             * 对象池标志
             */ sign : string ; /**
             * 对象池未使用对象数量
             */ size : number ; /**
             * 已使用的对象数量
             */ usedCount : number ; /**
             * 阈值 对象池size的最大值
             * size超过这个数则，则后续的对象回收就会直接销毁
             * 默认没有阈值，不作限制
             */ threshold : number ; param opt init ( opt ) : objPool . IPool < T , onGetDataType > ; param sign param createFunc initByFunc ( sign , createFunc ) : objPool . IPool < T , onGetDataType > ; param sign param clas initByClass ( sign , clas ) : objPool . IPool < T , onGetDataType > ; param objHandler deprecated setObjHandler ( objHandler ) : void ; param num preCreate ( num ) : void ; param onGetData get ( onGetData ? ) : T ; param onGetData param num getMore ( onGetData , num ? ) : T [ ] ; /**
             * 清空对象池
             */ clear ( ) : void ; param obj return ( obj ) : void ; /**
             * 回收所有正在使用的对象
             */ returnAll ( ) : void ; param obj kill ( obj ) : void ; } interface IPoolMgr < SignKeyAndOnGetDataMap = any > { param sign param threshold setPoolThreshold < Sign extends keyof SignKeyAndOnGetDataMap = any > ( sign , threshold ) : void ; param objHandler deprecated setPoolHandler < Sign extends keyof SignKeyAndOnGetDataMap = any > ( sign , objHandler ) : void ; param opt createObjPool < Sign extends keyof SignKeyAndOnGetDataMap = any , T = any > ( opt ) : objPool . IPool < T , SignKeyAndOnGetDataMap [ Sign ] > ; param sign param cls createByClass < Sign extends keyof SignKeyAndOnGetDataMap = any > ( sign , cls ) : void ; param sign param createFunc createByFunc < Sign extends keyof SignKeyAndOnGetDataMap = any , T = any > ( sign , createFunc ) : void ; param sign getPool < Sign extends keyof SignKeyAndOnGetDataMap = any , T = any > ( sign ) : objPool . IPool < T , SignKeyAndOnGetDataMap [ Sign ] > ; param sign hasPool < Sign extends keyof SignKeyAndOnGetDataMap = any > ( sign ) : boolean ; param sign destroyPool < Sign extends keyof SignKeyAndOnGetDataMap = any > ( sign ) : void ; param sign clearPool < Sign extends keyof SignKeyAndOnGetDataMap = any > ( sign ) : void ; param sign param preCreateCount preCreate < Sign extends keyof SignKeyAndOnGetDataMap = any > ( sign , preCreateCount ) : void ; param sign param onGetData get < Sign extends keyof SignKeyAndOnGetDataMap = any , T = any > ( sign , onGetData ? ) : T extends objPool . IObj < SignKeyAndOnGetDataMap [ Sign ] > ? T : objPool . IObj < SignKeyAndOnGetDataMap [ Sign ] > ; param sign param onGetData param num getMore < Sign extends keyof SignKeyAndOnGetDataMap = any , T = any > ( sign , onGetData ? , num ? ) : T extends objPool . IObj < SignKeyAndOnGetDataMap [ Sign ] > ? T [ ] : objPool . IObj < SignKeyAndOnGetDataMap [ Sign ] > [ ] ; param sign return getPoolObjsBySign < Sign extends keyof SignKeyAndOnGetDataMap = any , T = any > ( sign ) : T extends objPool . IObj < SignKeyAndOnGetDataMap [ Sign ] > ? T [ ] : objPool . IObj < SignKeyAndOnGetDataMap [ Sign ] > [ ] ; param obj return ( obj ) : void ; param sign returnAll < Sign extends keyof SignKeyAndOnGetDataMap = any > ( sign ) : void ; param obj kill ( obj ) : void ; } } } export { } ;