/**
 * @module AbstractUpdater
 * @description 数据热更新抽象类
 */
export default abstract class AbstractUpdater<T, D> {
    protected old: any;
    protected now: any;
    protected data: D;
    protected createInstance: (ctor: any, oldInstance: T) => any;
    protected useFn: (m: any) => any;
    protected needHotFn: (m: T, ctor: any) => boolean;
    /**
     * 构造一个更新器
     */
    constructor(data: any, now: any, old: any);
    /**
     * 设置:是否需要热更新的比较函数
     */
    needHot(handler: (m: T, ctor: any) => boolean): this;
    /**
     * 设置：提取需要热更新的类型
     */
    use(handler: (m: any) => any): this;
    /**
     * 设置：创建新的的实例的函数
     */
    creator(createInstance: (ctor: any, o: any) => T): this;
    /**
     * 执行更新
     */
    update(): void;
    /**
     * 清除当前传入的数据中，热更新模块旧的实例数据。
     */
    remove(): void;
    protected abstract internalUpdate(ctor: any, newCtor: any): any;
    /**
     * 执行清理操作
     */
    protected abstract cleanUpdate(oldCtor: any): any;
}
