import type { AuthInfoLink, OAuthDeviceCodeInfo } from "@bastani/pi-ai"; import { Container, type Focusable, type TUI } from "@earendil-works/pi-tui"; /** * Login dialog component - replaces editor during OAuth login flow */ export declare class LoginDialogComponent extends Container implements Focusable { private contentContainer; private input; private tui; private authUrl?; private abortController; private inputResolver?; private inputRejecter?; private authCancelHint?; private deviceCodeAction?; private deviceCodeHint?; private _focused; get focused(): boolean; set focused(value: boolean); private onComplete; constructor(tui: TUI, providerId: string, onComplete: (success: boolean, message?: string) => void, providerNameOverride?: string, titleOverride?: string); get signal(): AbortSignal; private clearDeviceCodeAction; private cancel; /** * Called by onAuth callback - show URL and optional instructions */ showAuth(url: string, instructions?: string, options?: { autoOpenBrowser?: boolean; showCancelHint?: boolean; }): void; /** * Called by onDeviceCode callback - show URL and user code. */ showDeviceCode(info: OAuthDeviceCodeInfo): void; private setDeviceCodeStatus; private activateDeviceCode; private replaceInputWithSubmittedText; private removeAuthCancelHint; /** * Show input for manual code/URL entry (for callback server providers) */ showManualInput(prompt: string): Promise; /** Resolve and release a manual input prompt after an out-of-band callback succeeds. */ dismissPendingInput(): void; /** * Called by onPrompt callback - show prompt and wait for input * Note: Does NOT clear content, appends to existing (preserves URL from showAuth) */ showPrompt(message: string, placeholder?: string): Promise; /** Show static informational details and a close hint. */ showDetails(lines: string[]): void; /** Show provider-owned information and terminal hyperlinks. */ showInfo(message: string, links?: readonly AuthInfoLink[]): void; /** * Show waiting message (for polling flows like GitHub Copilot) */ showWaiting(message: string): void; /** * Called by onProgress callback */ showProgress(message: string): void; handleInput(data: string): boolean; } //# sourceMappingURL=login-dialog.d.ts.map