export interface UserAuth { token: string; login: string; authorized_at: string; } export interface PendingDeviceFlow { device_code: string; user_code: string; verification_uri: string; expires_at: number; interval: number; } export type AuthState = { kind: "auth"; auth: UserAuth; } | { kind: "pending"; pending: PendingDeviceFlow; }; export declare class OAuthClientNotConfiguredError extends Error { constructor(); } export declare function readUserAuth(): Promise; export declare function writeUserAuth(auth: UserAuth): Promise; export declare function clearUserAuth(): Promise; export declare function startDeviceFlow(): Promise; export type ExchangeResult = { kind: "auth"; auth: UserAuth; } | { kind: "pending"; } | { kind: "expired"; } | { kind: "denied"; }; export declare function tryExchangeDeviceCode(pending: PendingDeviceFlow): Promise; /** Resolve user auth, initiating or resuming device flow as needed. * Returns either a usable auth or a pending state for the caller to surface. */ export declare function resolveUserAuth(): Promise;