/** * The machine half of the Google connector. * * Everything else in this module is policy over injected ports, so the whole * connector, consent, token refresh, the Gmail and Calendar calls, the setup * flows, the console walkthrough, runs in a test with no filesystem, no * socket, no subprocess and no browser. That property is only worth anything * if the concrete implementations live somewhere separate, and this is that * somewhere: four small adapters, each the ONLY place its kind of I/O happens. * * - `nodeGoogleFilePort` reads files (never writes: adoption reads * another tool's credentials and must not touch * them) * - `createProcessCommandPort` spawns subprocesses, for the gcloud driver * - `startLoopbackListener` binds the loopback port Google redirects to * - `createFetchCalDavHttpPort` performs CalDAV HTTP * * This entry is deliberately NOT re-exported from the module index: importing * the connector must never drag a runtime-specific implementation in behind * it. A consumer asks for these by name, from here. */ import type { GoogleFilePort } from './credential-adoption.js'; import type { GoogleCommandPort } from './types.js'; import { type LoopbackListener, type StartLoopbackListenerOptions } from './oauth-loopback.js'; import type { CalDavHttpPort } from './caldav-client.js'; /** Plain node file reads. Adoption never writes, so there is no write side. */ export declare const nodeGoogleFilePort: GoogleFilePort; /** The real command port: spawns a subprocess with a hard timeout. */ export declare function createProcessCommandPort(): GoogleCommandPort; /** * Starts the local HTTP listener the browser redirects back to. Resolves as * soon as the server is bound; the first well-formed redirect it receives * settles `waitForCode()`, later redirects to the same server are ignored. * * The decision about what a given redirect means, is it ours, does it carry a * code, did Google report an error, is `classifyLoopbackRedirect`, not * anything here, so the `state` check that defends this flow is exercised by * tests that never bind a port. */ export declare function startLoopbackListener(options: StartLoopbackListenerOptions): LoopbackListener; /** The only place the CalDAV client performs real network I/O: a thin wrapper over the global `fetch`. */ export declare function createFetchCalDavHttpPort(): CalDavHttpPort; //# sourceMappingURL=node.d.ts.map