import type { TokenResponse } from "./types.js"; export interface DeviceFlowDeps { readonly fetchImpl?: typeof fetch | undefined; readonly validateUrl?: ((url: string) => URL) | undefined; readonly sleep?: ((ms: number) => Promise) | undefined; } export interface DeviceAuthorizationRequest { readonly deviceAuthorizationEndpoint: string; readonly clientId: string; readonly scope?: string | undefined; } export interface DeviceAuthorization { readonly deviceCode: string; readonly userCode: string; readonly verificationUri: string; readonly verificationUriComplete?: string | undefined; readonly intervalSeconds: number; readonly expiresInSeconds: number; } export interface DeviceTokenPollRequest { readonly tokenEndpoint: string; readonly deviceCode: string; readonly clientId: string; readonly clientSecret?: string | undefined; readonly intervalSeconds: number; readonly expiresInSeconds: number; } export declare function requestDeviceAuthorization(params: DeviceAuthorizationRequest, deps?: DeviceFlowDeps): Promise; export declare function pollDeviceTokens(params: DeviceTokenPollRequest, deps?: DeviceFlowDeps): Promise;