declare global { namespace displayCtrl { type CtrlClassType < T extends ICtrl = any > = { readonly typeKey ? : string ; readonly ress ? : string [ ] | any [ ] ; new ( dpCtrlMgr ? ) : T ; } ; type CtrlLoadedCb = ( isOk : boolean ) => void ; type CtrlInsMap < keyType extends keyof any = any > = { [ P in keyType ] : ICtrl ; } ; type CtrlShowCfgs = { [ key ] : IShowConfig [ ] ; } ; type CtrlClassMap = { [ key ] : CtrlClassType < ICtrl > ; } ; type CtrlInsCb < T = unknown > = ( ctrl : T extends displayCtrl . ICtrl ? T : displayCtrl . ICtrl ) => void ; interface IResLoadConfig { /**页面key */ key : string ; /**资源数组 */ ress ? : string | any [ ] ; /**完成回调 */ complete : VoidFunction ; /**错误回调 */ error : VoidFunction ; /**加载透传数据 */ onLoadData ? : any ; } /**
         * 资源处理器
         */ interface IResHandler { param config loadRes ? ( config ) : void ; param ctrlIns releaseRes ? ( ctrlIns ? ) : void ; } interface ILoadConfig { /**页面类型key */ typeKey ? : string | any ; /**强制重新加载 */ forceLoad ? : boolean ; /**加载后onLoad参数 */ onLoadData ? : any ; /**加载完成回调,返回实例为空则加载失败，返回实例则成功 */ loadCb ? : CtrlInsCb ; } interface ILoadHandler extends ILoadConfig { loadCount : number ; } /**
         * 创建配置
         */ interface ICreateConfig < InitDataTypeMapType = any , ShowDataTypeMapType = any , TypeKey extends keyof any = any > extends ILoadConfig { /**是否自动显示 */ isAutoShow ? : boolean ; /**透传初始化数据 */ onInitData ? : InitDataTypeMapType [ ToAnyIndexKey < TypeKey , InitDataTypeMapType > ] ; /**显示透传数据 */ onShowData ? : ShowDataTypeMapType [ ToAnyIndexKey < TypeKey , ShowDataTypeMapType > ] ; /**创建回调 */ createCb ? : CtrlInsCb ; } /**
        * 将索引类型转换为任意类型的索引类型
        */ type ToAnyIndexKey < IndexKey , AnyType > = IndexKey extends keyof AnyType ? IndexKey : keyof AnyType ; interface IInitConfig < TypeKey extends keyof any = any , InitDataTypeMapType = any > { typeKey ? : TypeKey ; onInitData ? : InitDataTypeMapType [ ToAnyIndexKey < TypeKey , InitDataTypeMapType > ] ; } /**
         * 显示配置
         */ interface IShowConfig < TypeKey extends keyof any = any , InitDataTypeMapType = any , ShowDataTypeMapType = any > { typeKey ? : TypeKey ; /**
             * 透传初始化数据
             */ onInitData ? : InitDataTypeMapType [ ToAnyIndexKey < TypeKey , InitDataTypeMapType > ] ; /**
             * 强制重新加载
             */ forceLoad ? : boolean ; /**
             * 显示数据
             */ onShowData ? : ShowDataTypeMapType [ ToAnyIndexKey < TypeKey , ShowDataTypeMapType > ] ; /**在调用控制器实例onShow后回调 */ showedCb ? : CtrlInsCb ; /**控制器显示完成后回调 */ showEndCb ? : VoidFunction ; /**显示被取消了 */ onCancel ? : VoidFunction ; /**加载后onLoad参数 */ onLoadData ? : any ; /**加载完成回调,返回实例为空则加载失败，返回实例则成功 */ loadCb ? : CtrlInsCb ; } type ReturnCtrlType < T > = T extends displayCtrl . ICtrl ? T : displayCtrl . ICtrl ; interface ICtrl < NodeType = any > { key ? : string | any ; /**正在加载 */ isLoading ? : boolean ; /**已经加载 */ isLoaded ? : boolean ; /**已经初始化 */ isInited ? : boolean ; /**已经显示 */ isShowed ? : boolean ; /**需要显示 */ needShow ? : boolean ; /**需要加载 */ needLoad ? : boolean ; /**正在显示 */ isShowing ? : boolean ; /**
             * 透传给加载处理的数据,
             * 会和调用显示接口showDpc中传来的onLoadData合并,
             * 以接口传入的为主
             * Object.assign(ins.onLoadData,cfg.onLoadData);
             * */ onLoadData ? : any ; /**获取资源 */ getRess ? ( ) : string [ ] | any [ ] ; param initData onInit ( config ? ) : void ; param showData onShow ( config ? ) : void ; param updateData param endCb onUpdate ( updateData ) : void ; /**
             * 获取控制器
             */ getFace < T > ( ) : ReturnCtrlType < T > ; /**
             * 当隐藏时
             */ onHide ( ) : void ; /**
             * 强制隐藏
             */ forceHide ( ) : void ; param destroyRes onDestroy ( destroyRes ? ) : void ; /**
             * 获取显示节点
             */ getNode ( ) : NodeType ; } interface IMgr < CtrlKeyMapType = any , InitDataTypeMapType = any , ShowDataTypeMapType = any , UpdateDataTypeMapType = any > { /**控制器key字典 */ keys : CtrlKeyMapType ; /**
             * 控制器单例字典
             */ sigCtrlCache : CtrlInsMap ; param resHandler init ( resHandler ? ) : void ; param classMap registTypes ( classes ) : void ; param ctrlClass param typeKey regist ( ctrlClass , typeKey ? ) : void ; param typeKey isRegisted < keyType extends keyof CtrlKeyMapType > ( typeKey ) : boolean ; param typeKey getDpcRessInClass < keyType extends keyof CtrlKeyMapType > ( typeKey ) : string [ ] | any [ ] ; param typeKey getSigDpcRess < keyType extends keyof CtrlKeyMapType > ( typeKey ) : string [ ] | any [ ] ; param typeKey getSigDpcIns < T , keyType extends keyof CtrlKeyMapType = any > ( typeKey ) : displayCtrl . ReturnCtrlType < T > ; param typeKey param loadCfg loadSigDpc < T , keyType extends keyof CtrlKeyMapType = any > ( typeKey , loadCfg ? ) : displayCtrl . ReturnCtrlType < T > ; param typeKey param initCfg initSigDpc < T , keyType extends keyof CtrlKeyMapType = any > ( typeKey , initCfg ? ) : displayCtrl . ReturnCtrlType < T > ; param typeKey param onShowData param showedCb param onInitData param forceLoad param onCancel showDpc < T , keyType extends keyof CtrlKeyMapType = any > ( typeKey , onShowData ? , showedCb ? , onInitData ? , forceLoad ? , onLoadData ? , loadCb ? , onCancel ? ) : displayCtrl . ReturnCtrlType < T > ; param key param updateData updateDpc < keyType extends keyof CtrlKeyMapType > ( key , updateData ? ) : void ; param key hideDpc < keyType extends keyof CtrlKeyMapType > ( key ) : void ; param key param destroyRes destroyDpc < keyType extends keyof CtrlKeyMapType > ( key , destroyRes ? ) : void ; param typeKey insDpc < T , keyType extends keyof CtrlKeyMapType = any > ( typeKey ) : ReturnCtrlType < T > ; param ins param loadCfg loadDpcByIns ( ins , loadCfg ? ) : void ; param ins param initData initDpcByIns < keyType extends keyof CtrlKeyMapType > ( ins , initCfg ? ) : void ; param ins param showCfg showDpcByIns < keyType extends keyof CtrlKeyMapType > ( ins , showCfg ? ) : void ; param ins hideDpcByIns < T extends displayCtrl . ICtrl > ( ins ) : void ; param ins param destroyRes destroyDpcByIns < T extends displayCtrl . ICtrl > ( ins , destroyRes ? , endCb ? ) : void ; param key isLoading < keyType extends keyof CtrlKeyMapType > ( key ) : boolean ; param key isLoaded < keyType extends keyof CtrlKeyMapType > ( key ) : boolean ; param key isInited < keyType extends keyof CtrlKeyMapType > ( key ) : boolean ; param key isShowed < keyType extends keyof CtrlKeyMapType > ( key ) : boolean ; param typeKey getCtrlClass < keyType extends keyof CtrlKeyMapType > ( typeKey ) : CtrlClassType < ICtrl > ; } } } export { } ;