/**
 * Serve the compiled admin/ client bundle under /admin/.
 * - dist/admin/index.html for /admin and /admin/
 * - dist/admin/assets/* for hashed JS/CSS
 * - Returns a friendly error page when the bundle is missing
 * - Returns `false` when the path should fall through to legacy /admin/* handlers
 *
 * Runs BEFORE the adminToken bearer gate — these files are just UI shell.
 * All sensitive data comes through /admin/api (Phase α handler), which has
 * its own session-based auth.
 */
import type { IncomingMessage, ServerResponse } from 'node:http';
export declare function getAdminStaticDistDir(): string;
export declare function handleAdminStatic(req: IncomingMessage, res: ServerResponse, options?: {
    distDir?: string;
}): boolean;
export interface PathContainmentOps {
    relative(from: string, to: string): string;
    isAbsolute(path: string): boolean;
}
export declare function isPathInsideDirectory(targetPath: string, directory: string, pathOps?: PathContainmentOps): boolean;
