import type { AuthInteraction } from '@earendil-works/pi-ai'; import type { LoginDialogComponent } from '@earendil-works/pi-coding-agent'; export type DialogInteractionOptions = { /** Open the verification URL for `auth_url` / `device_code` events. */ openBrowser?: (url: string) => void; /** Repaint hook — the login dialog transitions between keystrokes, so a host that * proxies its render (the setup wizard) must be told to drop its cached lines. */ onChange?: () => void; /** False once the flow is dead (superseded, cancelled); events are then dropped. */ isActive?: () => boolean; }; /** * Build the `AuthInteraction` for one login flow on `dialog`. * * `select` prompts render as a numbered list through the dialog's normal text input: * the dialog occupies crouter's single inline slot in both surfaces, so swapping in pi's * separate selector component (what pi's own interactive mode does) has nowhere to go. */ export declare function dialogAuthInteraction(dialog: LoginDialogComponent, options?: DialogInteractionOptions): AuthInteraction;