///
///
///
import { webpack } from 'next/dist/compiled/webpack/webpack';
import type { NextConfigComplete } from '../config-shared';
import type { CustomRoutes } from '../../lib/load-custom-routes';
import { IncomingMessage, ServerResponse } from 'http';
import { UrlObject } from 'url';
import getBaseWebpackConfig from '../../build/webpack-config';
import { __ApiPreviewProps } from '../api-utils';
import { UnwrapPromise } from '../../lib/coalesced-function';
import { RouteMatch } from '../future/route-matches/route-match';
import type { Telemetry } from '../../telemetry/storage';
export declare function renderScriptError(res: ServerResponse, error: Error, { verbose }?: {
verbose?: boolean | undefined;
}): Promise<{
finished: true | undefined;
}>;
export default class HotReloader {
private dir;
private buildId;
private interceptors;
private pagesDir?;
private distDir;
private webpackHotMiddleware?;
private config;
hasServerComponents: boolean;
clientStats: webpack.Stats | null;
serverStats: webpack.Stats | null;
edgeServerStats: webpack.Stats | null;
private clientError;
private serverError;
private serverPrevDocumentHash;
private prevChunkNames?;
private onDemandEntries?;
private previewProps;
private watcher;
private rewrites;
private fallbackWatcher;
private hotReloaderSpan;
private pagesMapping;
private appDir?;
private telemetry;
private versionInfo;
multiCompiler?: webpack.MultiCompiler;
activeConfigs?: Array>>;
constructor(dir: string, { config, pagesDir, distDir, buildId, previewProps, rewrites, appDir, telemetry, }: {
config: NextConfigComplete;
pagesDir?: string;
distDir: string;
buildId: string;
previewProps: __ApiPreviewProps;
rewrites: CustomRoutes['rewrites'];
appDir?: string;
telemetry: Telemetry;
});
run(req: IncomingMessage, res: ServerResponse, parsedUrl: UrlObject): Promise<{
finished?: true;
}>;
onHMR(req: IncomingMessage, _res: ServerResponse, head: Buffer): void;
private clean;
private getVersionInfo;
private getWebpackConfig;
buildFallbackError(): Promise;
start(): Promise;
invalidate(): void | "" | undefined;
stop(): Promise;
getCompilationErrors(page: string): Promise;
send(action?: string | any, ...args: any[]): void;
ensurePage({ page, clientOnly, appPaths, match, }: {
page: string;
clientOnly: boolean;
appPaths?: string[] | null;
match?: RouteMatch;
}): Promise;
}