import type { Server } from 'node:http';
import type { InterviewConfig } from '../config';
import type { InterviewSessionRuntime } from '../interview/runtime';
import { createInterviewService } from '../interview/service';
import type { InterviewMessage } from '../interview/types';
import type { V2CommandDraft, V2Context, V2SessionContextEvent } from './types';
export declare const INTERVIEW_COMMAND_MARKER = "$ARGUMENTS";
/** Render the `/interview` command marker with the given arguments. */
export declare function markerText(args: string): string;
export interface V2InterviewBridge {
readonly service: ReturnType;
readonly runtime: InterviewSessionRuntime;
registerCommand(draft: V2CommandDraft): void;
handleContext(event: V2SessionContextEvent): Promise;
handleEvent(event: Record): Promise;
getTranscript(sessionID: string): InterviewMessage[];
dispose(): void;
}
/** Mutate the trailing command message from hook-produced parts. When the
* hook produced nothing, strip the marker and leave the raw args text.
* Only the trailing message is mutated; earlier messages are left
* byte-for-byte untouched so provider prompt prefixes remain cacheable. */
export declare function applyInterviewCommandParts(trailing: {
role: string;
content: Array>;
}, text: string, parts: Array>): void;
export declare function createV2InterviewBridge(ctx: V2Context, config?: InterviewConfig, options?: {
/** Already-listening server for the dashboard role to adopt. */
server?: Server;
}): V2InterviewBridge;