import type { HtmlDocumentContribution } from '../services/html/html-transformer.service.js';
import type { EcoPagesAppConfig } from '../types/internal-types.js';
import type { PagePackageResult } from '../types/public-types.js';
export type DevToolbarHostOptions = {
watch: boolean;
hostOwnsDevClient?: boolean;
};
type DevToolbarBundleService = {
bundle: (options: {
profile: 'hmr-runtime';
entrypoints: string[];
outdir: string;
naming: string;
minify: boolean;
}) => Promise<{
success: boolean;
logs: unknown;
outputs: Array<{
path: string;
}>;
}>;
};
/**
* Server-side entry point for dev toolbar config, HTML injection, manifest, and runtime bundling.
*/
export declare class DevToolbarHost {
private readonly appConfig;
private readonly options;
constructor(appConfig: EcoPagesAppConfig, options: DevToolbarHostOptions);
static forApp(appConfig: EcoPagesAppConfig, options: DevToolbarHostOptions): DevToolbarHost;
isEnabled(): boolean;
getRuntimeScriptUrl(): string;
getRuntimeScriptImport(): string;
resolveRuntimeWorkDir(workDir: string): string;
shouldInjectHtml(): boolean;
injectHtmlResponse(response: Response): Promise;
buildRouteManifestContribution(input: {
routeFile: string;
integrationName: string;
pagePackage?: PagePackageResult;
}): HtmlDocumentContribution | undefined;
bundleClientRuntime(options: {
browserBundleService: DevToolbarBundleService;
workDir: string;
onFailure: (error: unknown) => void;
}): Promise;
readBundledRuntime(workDir: string): Response | null;
}
export {};