import { CodexDeviceControl } from './codex-device-control.js'; export type CodexAppServerJsonRpcMessage = Record & { id?: number | string; method?: string; params?: Record | null; result?: Record; error?: { message?: string; }; }; export type CodexAppServerNotificationListener = (message: CodexAppServerJsonRpcMessage) => void; export type CodexAppServerServerRequestListener = (message: CodexAppServerJsonRpcMessage) => void; export type CodexAppServerNotificationChannel = { next(timeoutMs?: number, signal?: AbortSignal): Promise; close(): void; }; export type CodexAppServerHostInitInput = { cwd: string; env?: Record; }; export declare function buildReadyAppServerEnv(environmentVariables?: Record): Promise; export declare function codexAppServerArgs(): string[]; export declare function terminateAppServerProcessTreeByPid(pid: number | null | undefined, signal?: NodeJS.Signals): void; export declare function listAppServerPreservePids(rootPid: number | null | undefined): number[]; export declare class CodexAppServerHost { readonly deviceControl: CodexDeviceControl; private child; private readonly ownerId; private nextId; private pending; private readonly notificationListeners; private readonly notificationChannels; private readonly turnThreads; private readonly serverRequestListeners; private readonly pendingServerRequests; private initialized; private ensureInFlight; private ownedRootPid; private stderrText; private notificationError; private cwd; private initializationResult; private credentialFingerprint; ensureInitialized(input: CodexAppServerHostInitInput): Promise; private terminateOwnedRoot; private start; clientInitializationResult(): Record | null; subscribeNotifications(listener: CodexAppServerNotificationListener): () => void; subscribeServerRequests(listener: CodexAppServerServerRequestListener): () => void; respondToServerRequest(id: string | number, response: { result?: Record; error?: Record; }): boolean; private enqueueNotification; openNotificationChannel(threadId: string): CodexAppServerNotificationChannel; private attachJsonLines; private handleLine; private handleNativeServerRequest; request(method: string, params?: Record | null): Promise; notify(method: string, params?: Record): void; childPid(): number | null; close(): void; private rejectAll; } export declare function getSharedCodexAppServerHost(): CodexAppServerHost; export declare function closeSharedCodexAppServerHost(): void; export declare function resetSharedCodexAppServerHostForTests(): void; //# sourceMappingURL=codex-app-server-host.d.ts.map