import { Hono } from 'hono';
import { type SpawnDeps } from './pty-spawner.js';
import type { FsWatcher } from './fs-watcher.js';
import type { RateLimiter } from './spawn-rate-limiter.js';
import type { AuditRegistry } from './public-tool-audit.js';
import { type UserTitleStore } from './user-title-store.js';
export declare const SESSION_ID_PATTERN: RegExp;
export declare const RC_SPAWN_URL_WAIT_DEFAULT_MS = 60000;
export interface HttpDeps extends Omit<SpawnDeps, 'onSessionReady' | 'watcher'> {
    /** Admin operator's userId, sourced from users.json at boot (same as
     *  RcDaemonDeps.userId). Passed to buildRcChildEnv so the scheduling MCP
     *  and other USER_ID consumers work under /rc-spawn sessions. */
    userId?: string;
    watcher: FsWatcher;
    killGraceMs: number;
    jsonlReadMaxBytes: number;
    publicSpawnLimiter: RateLimiter;
    publicToolAudit: AuditRegistry;
    /** Task 253 — operator-stamped title override store. Reads merge into
     *  every displayName resolution site; the /:sessionId/rename route writes. */
    userTitleStore: UserTitleStore;
    /** Task 648 — override the `/rc-spawn` pid/bind poll bound. Production
     *  omits this and gets RC_SPAWN_URL_WAIT_DEFAULT_MS (60s); tests inject a
     *  short value to exercise the bind-timeout response without a 60s wait. */
    rcSpawnUrlWaitMs?: number;
}
/** Task 189 — Hono instance with the test-only fan-out trigger attached.
 *  The vitest fixture for the `/events` url-capture re-emit drives this
 *  directly (no real PTY spawn in the suite); production callers route
 *  through the SpawnDeps `onUrlCaptured` callback wired below. */
export type HttpApp = Hono & {
    __notifyUrlCapturedForTests(sessionId: string): void;
    /** Task 253 — drive a synthetic rename re-emit without going through
     *  the POST route. Production callers route through `notifyRename` in
     *  the rename handler; this seam lets vitest exercise the /events
     *  fan-out without a real HTTP request. */
    __notifyRenameForTests(sessionId: string): void;
};
export declare function buildHttpApp(deps: HttpDeps): HttpApp;
//# sourceMappingURL=http-server.d.ts.map