import type { ChildProcessWithoutNullStreams } from 'node:child_process'; export declare class JsonChildClient { readonly child: ChildProcessWithoutNullStreams; private readonly label; private readonly onEvent?; private readonly onPendingChange?; private buffered; private nextRequestId; private pending; private initialResponse; private terminalError; private closePromise; private exited; private exitDescription; private resolveExit; private readonly exitPromise; constructor(child: ChildProcessWithoutNullStreams, label: string, onEvent?: ((event: Record) => void) | undefined, onPendingChange?: ((count: number) => void) | undefined); private consume; private reportPending; private finish; private waitForResponse; initialize(options?: { timeoutMs?: number; }): Promise>; request(value: Record, options?: { timeoutMs?: number; }): Promise>; isTerminal(): boolean; close(): Promise; private closeChild; } /** Backward-compatible name for the Darwin pinned-file protocol. */ export { JsonChildClient as DarwinJsonChildClient }; //# sourceMappingURL=pinned-atomic-file-darwin-client.d.ts.map