import { execFileSync } from 'node:child_process'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; export type McpServerName = 'state' | 'memory' | 'code_intel' | 'trace' | 'wiki' | 'hermes'; export declare const MCP_ENTRYPOINT_MARKER_ENV = "OMX_MCP_ENTRYPOINT_MARKER"; interface StdioLifecycleServer { connect(transport: StdioServerTransport): Promise; close(): Promise; } export interface ProcessTableEntry { pid: number; ppid: number; command: string; } export interface DuplicateSiblingObservation { status: 'ambiguous' | 'unique' | 'newest' | 'older_duplicate'; entrypoint: string | null; matchingPids: number[]; newerSiblingPids: number[]; } interface LifecycleTimingConfig { parentWatchdogIntervalMs: number; duplicateSiblingWatchdogIntervalMs: number; duplicateSiblingPreTrafficGraceMs: number; duplicateSiblingPostTrafficIdleMs: number; duplicateSiblingInitialDelayMs: number | null; duplicateSiblingInitialDelayMaxMs: number; maxSiblingsPerEntrypoint: number; } export declare function extractMcpEntrypointMarker(command: string): string | null; export declare function resolveCurrentMcpEntrypointMarker(env?: Record, argv1?: string | undefined): string | null; export declare function parseProcessTable(output: string): ProcessTableEntry[]; type ProcessTableReader = typeof execFileSync; export declare function parseWindowsProcessTable(output: string): ProcessTableEntry[] | null; export declare function listProcessTable(readPs?: ProcessTableReader, platform?: NodeJS.Platform): ProcessTableEntry[] | null; export declare function analyzeDuplicateSiblingState(processes: readonly ProcessTableEntry[], currentPid: number, currentParentPid: number, currentEntrypoint: string | null): DuplicateSiblingObservation; export declare function resolveDuplicateSiblingWatchdogInitialDelayMs(serverName: McpServerName, entrypoint: string | null, config: Pick): number; export declare function shouldSelfExitForDuplicateSibling(observation: DuplicateSiblingObservation, nowMs: number, duplicateObservedAtMs: number | null, lastTrafficAtMs: number | null, preTrafficGraceMs?: number, postTrafficIdleMs?: number): boolean; export declare function shouldSelfExitForPreTrafficSiblingHardCap(observation: DuplicateSiblingObservation, lastTrafficAtMs: number | null, maxSiblingsPerEntrypoint?: number): boolean; export declare function isParentProcessAlive(parentPid: number, signalProcess?: typeof process.kill): boolean; export declare function shouldAutoStartMcpServer(server: McpServerName, env?: Record): boolean; export declare function autoStartStdioMcpServer(serverName: McpServerName, server: StdioLifecycleServer, env?: Record): void; export {}; //# sourceMappingURL=bootstrap.d.ts.map