export * from "./types.js"; export { pollDeviceAuthorization } from "./device.js"; export { findConnectRecoveryAccount } from "./recovery.js"; export { ConnectWaitTimedOutError, pollConnectAttempt } from "./poll.js"; export { authorizeConnectAttempt, ConnectPopupClosedError, type ConnectNavigation, } from "./authorization.js"; export { createBrowserConnectNavigation, reserveBrowserConnectNavigation, type ConnectBrowserWindow, } from "./browser-navigation.js"; import type { ConnectAdvance, ConnectAttempt, ConnectOwnership, ConnectTransport } from "./types.js"; export type ConnectSnapshot = { attempt: ConnectAttempt | null; busy: boolean; error: Error | null; }; /** A transport-injected, framework-neutral view of one durable setup attempt. * OAuth redirects are hints to navigate; completion is read from the backend. * Secret form values are never stored in a snapshot or browser persistence. */ export declare class ConnectController { readonly transport: ConnectTransport; readonly workspaceId: string; private snapshot; private readonly listeners; private generation; private request; private disposed; constructor(transport: ConnectTransport, workspaceId: string); getSnapshot: () => ConnectSnapshot; subscribe: (listener: () => void) => (() => void); begin(input: { providerId: string; ownership: ConnectOwnership; returnUrl: string; idempotencyKey: string; reconnectAccountId?: string; installationTarget?: import("./types.js").ConnectInstallationTarget; mcpSetup?: import("./types.js").PreparedMcpSetup; }): Promise; recover(attemptId: string): Promise; refresh(): Promise; advance(action: ConnectAdvance, idempotencyKey: string): Promise; /** Observe backend progress without replaying a setup mutation. Disposal or * selecting another attempt aborts the read loop and fences its late result. */ waitForAction(options?: { timeoutMs?: number; }): Promise; cancel(idempotencyKey: string): Promise; dispose(): void; private assertActive; private requireAttempt; private publish; private run; }