/**
 * Copyright: (c) Myia SAS 2026.
 * This file and its contents are licensed under the AGPLv3 License.
 * Please see the LICENSE file at the root of this repository
 */
export interface LocalViewerServerOptions {
    /** Root directory containing `heal-traces/` (typically `process.cwd()`). */
    rootDir: string;
    /** Vendored SPA bundle directory (contains `index.html`). */
    bundleDir: string;
    port: number;
    /**
     * Optional: hostname to bind. Defaults to localhost only — never
     * 0.0.0.0; this is a single-user developer tool.
     */
    hostname?: string;
    log?: (msg: string) => void;
}
export declare class LocalViewerServer {
    private server;
    private readonly options;
    private readonly indexCacheByExec;
    private executionsCache;
    constructor(options: LocalViewerServerOptions);
    start(): Promise<void>;
    /**
     * Port the server is actually listening on. Differs from
     * `options.port` when 0 was passed (OS-assigned ephemeral port —
     * the standard "let me pick" idiom). Returns null before `start()`
     * has finished or after `stop()`.
     */
    boundPort(): number | null;
    stop(): Promise<void>;
    private handle;
    private serveExecutions;
    private loadIndex;
    private serveIndex;
    private findSummary;
    private parseAttempt;
    private serveTrace;
    private serveAsset;
    private serveScreenshot;
    private serveStatic;
}
