import { Where } from "../../types/adapter.mjs"; import { User } from "../../types/models.mjs"; import { DeviceCode } from "./schema.mjs"; import { GenericEndpointContext } from "@better-auth/core"; //#region src/plugins/device-authorization/routes.d.ts interface DeviceCodeRedemptionAuthorization { /** Additional ownership predicate used by the atomic claim. */ ownershipWhere: Where; /** Issuer-specific state that survives until token issuance. */ context: AuthorizationContext; } interface DeviceCodeRedemptionResult, AuthorizationContext, RedemptionContext> { claimedDeviceCode: DeviceCode & DeviceCodeFields & { userId: string; }; authorizationContext: AuthorizationContext; redemptionContext: RedemptionContext; user: User; } /** * Runs the RFC 8628 polling and one-time claim state machine shared by every * token issuer. Issuers supply ownership checks and grant-specific validation, * but cannot bypass expiry, polling, denial, or atomic consumption. */ declare function redeemDeviceCode, AuthorizationContext, RedemptionContext>(input: { ctx: GenericEndpointContext; deviceCode: string; authorizeRedemption: (deviceCode: DeviceCode & DeviceCodeFields) => DeviceCodeRedemptionAuthorization | Promise>; prepareRedemption: (deviceCode: DeviceCode & DeviceCodeFields, authorizationContext: AuthorizationContext) => RedemptionContext | Promise; }): Promise>; //#endregion export { DeviceCodeRedemptionAuthorization, DeviceCodeRedemptionResult, redeemDeviceCode };