import { type Express } from 'express'; /** * Generic OAuth redirect target for OAuth providers (implicit + PKCE). * * The callback page always POSTs the result to `/api/oauth-result`, which * the UI polls via the GET counterpart — the server holds the single * pending result in memory between the two calls. It ALSO best-effort * `window.opener.postMessage`s when an opener is present, as a faster * same-origin shortcut. The POST must not be conditional on a missing * opener: in the standalone thin-bridge float the UI is always loaded * cross-origin from the local server (`node-server serves no UI in any * mode`), so the popup's opener origin never matches `window.location.origin` * on the receiving end and the message is silently dropped even when * `window.opener` is non-null (e.g. GitHub, which does not sever it via * COOP) — leaving the poll as the only path that can actually deliver the * result. */ export declare function registerOAuthCallbackRoutes(app: Express): void;