/** * Auth / login / OAuth dialog controller. * * Extracted verbatim from interactive-mode.ts (god-file decomposition). Owns the /login and /logout * command flows: provider selection, subscription (OAuth) login dialogs, API-key login dialogs, the * Amazon Bedrock setup notice, the OAuth in-dialog select prompt, and post-login model adoption. It * holds NO state of its own — every credential/provider fact lives in session.modelRegistry.authStorage * — so it takes narrow deps (a live session accessor plus a UI callback surface, including the * editor-overlay-backed showSelector and the shared EditorOverlayHost for dialog swaps) rather than * the whole InteractiveMode instance. */ import { type Model } from "@caupulican/pi-ai"; import type { Component, TUI } from "@caupulican/pi-tui"; import type { AgentSession } from "../../core/agent-session.ts"; import { verifyBedrockScope } from "../../core/bedrock-scope.ts"; import { type BedrockSsoLoginOptions } from "../../core/bedrock-sso-login.ts"; import type { EditorOverlayHost } from "./editor-overlay-host.ts"; export declare function isApiKeyLoginProvider(providerId: string, oauthProviderIds: ReadonlySet, builtInProviderIds?: ReadonlySet): boolean; export interface AuthDialogsControllerUi { showSelector(create: (done: () => void) => { component: Component; focus: Component; }): void; showStatus(message: string): void; showError(message: string): void; requestRender(): void; readonly tui: TUI; readonly overlayHost: EditorOverlayHost; getEditor(): Component; updateAvailableProviderCount(): Promise; invalidateFooter(): void; updateEditorBorderColor(): void; maybeWarnAboutAnthropicSubscriptionAuth(model?: Model): void; checkDaxnutsEasterEgg(model: { provider: string; id: string; }): void; } export interface AuthDialogsControllerDeps { getSession(): AgentSession; ui: AuthDialogsControllerUi; loginBedrockSso?: (profile: string, options?: BedrockSsoLoginOptions) => Promise; verifyBedrockScope?: typeof verifyBedrockScope; } export declare class AuthDialogsController { private readonly deps; private activeLoginDialog; private activeLoginDialogOnUnmount; private suppressActiveLoginDialogUnmount; private activeOAuthSelectorCancel; constructor(deps: AuthDialogsControllerDeps); private get session(); private get ui(); cancelActiveDialog(): void; private clearActiveDialog; private mountLoginDialog; private restoreEditorFromDialog; private detachLoginDialogForSelector; private remountLoginDialog; private runMountedLoginDialog; private getLoginProviderOptions; private getLogoutProviderOptions; private resolveAuthProviderOption; private startProviderLogin; private logoutProvider; private showLoginAuthTypeSelector; private showLoginProviderSelector; private showProviderSelector; showOAuthSelector(mode: "login" | "logout", providerReference?: string): Promise; private completeProviderAuthentication; private showBedrockSetupDialog; private getConfiguredBedrockProfile; private getConfiguredBedrockRegion; private verifyAndActivateBedrockScope; private completeBedrockSetup; private showBedrockCredentialInfoDialog; private showBedrockSsoDialog; private showApiKeyLoginDialog; private showOAuthLoginSelect; private showLoginDialog; } //# sourceMappingURL=auth-dialogs-controller.d.ts.map