import type { PikkuCliSession } from './cli-session.js'; export interface DevicePrompt { /** Where the user approves the request. */ verificationUri: string; /** Same as above with the code pre-filled (open this if present). */ verificationUriComplete?: string; userCode: string; /** Absolute ms timestamp when the code expires. */ expiresAtMs: number; } export interface DeviceLoginOptions { /** Server origin, e.g. `https://app.example.com`. */ baseURL: string; /** better-auth basePath. Defaults to `/auth`. */ authBasePath?: string; /** Logical client identifier (no OIDC registration required). */ clientId?: string; /** Optional space-separated scopes to request. */ scope?: string; /** Called once the device code is issued, so the caller can prompt the user. */ onPrompt: (prompt: DevicePrompt) => void | Promise; } /** * Run the better-auth device-authorization flow against `baseURL` and return a * persisted-shaped session (token + best-effort expiry/user). The human * approves in the browser; this only requests a code and polls for the token. */ export declare const deviceLogin: (opts: DeviceLoginOptions) => Promise;