export type BunFrameHandler = (text: string) => void; export declare class BunInspectorClient { readonly url: string; private ws; private handlers; private openPromise; constructor(url: string); ready(): Promise; /** Subscribe to inbound JSC frames (raw JSON text). Returns unsub. */ onFrame(h: BunFrameHandler): () => void; /** Target calls this to send an outbound JSC frame. The iOS-shaped * (appId, pageId, senderKey) tuple is meaningless on Bun — we ignore * it and just write the bytes to the WebSocket. */ forwardSocketData(_appId: string, _pageId: number, _senderKey: string, bytes: Uint8Array): void; /** Target calls this on DevTools-side close. Bun has no per-session * teardown selector, so closing the WS is the right behavior — but * bun-server owns the WS lifecycle, not Target. No-op here. */ forwardDidClose(_appId: string, _pageId: number, _senderKey: string): void; close(): void; }