import { Compiler } from '../compiler/index.js';
import type { JsUpdateResult } from '../types/binding.js';
import { Logger } from '../utils/index.js';
import { Server } from './index.js';
export declare class HmrEngine {
    private _logger;
    private _updateQueue;
    private _compiler;
    private _devServer;
    private _onUpdates;
    private _lastModifiedTimestamp;
    constructor(compiler: Compiler, devServer: Server, _logger: Logger);
    callUpdates(result: JsUpdateResult): void;
    onUpdateFinish(cb: (result: JsUpdateResult) => void): void;
    recompileAndSendResult: () => Promise<JsUpdateResult>;
    hmrUpdate(absPath: string | string[], force?: boolean): Promise<void>;
}
