UNPKG

homebridge-homeconnect

Version:

A Homebridge plugin that connects Home Connect appliances to Apple HomeKit

73 lines 3.35 kB
import { Logger } from 'homebridge'; import { LocalStorage } from 'node-persist'; import { AbsoluteToken, AccessTokenRefreshResponse, AccessTokenResponse, AuthorisationResponse, DeviceAccessTokenResponse, DeviceAuthorisationResponse } from './api-auth-types.js'; import { APIUserAgent, Method, Request } from './api-ua.js'; import { ConfigPlugin } from './config-types.js'; import { AuthHelp, AuthHelpMessage } from './api-ua-auth-help.js'; export interface AuthorisationStatusSuccess { state: 'busy' | 'success'; } export interface AuthorisationStatusUser { state: 'user'; uri: string; code: string; expires: number | null; } export interface AuthorisationStatusFailed { state: 'fail'; retryable: boolean; error: unknown; message: string; help?: AuthHelpMessage; } export type AuthorisationStatus = AuthorisationStatusSuccess | AuthorisationStatusUser | AuthorisationStatusFailed; export declare class AuthorisationRetry { readonly reason: string; constructor(reason: string); } export declare class APIAuthoriseUserAgent extends APIUserAgent { readonly persist: LocalStorage; private readonly refreshWindow; private readonly refreshRetryDelay; private readonly pollPersistDelay; private deviceFlowPollInterval; private deviceFlowLogInterval; private isAuthorised; private readonly triggerAuthorisationRetry; private triggerDeviceFlow?; private pollDeviceCode?; private triggerTokenRefresh?; private status; private statusUpdate; private triggerStatusUpdate?; private token?; constructor(log: Logger, config: ConfigPlugin, persist: LocalStorage, language: string); get scopes(): string[]; authoriseUserAgent(): Promise<void>; maintainAccessToken(): Promise<never>; obtainAccessToken(): Promise<void>; refreshAccessToken(): Promise<void>; getSavedToken(): Promise<AbsoluteToken>; watchToken(oldToken?: AbsoluteToken): Promise<AuthorisationRetry>; saveToken(newToken: AccessTokenResponse | DeviceAccessTokenResponse | AccessTokenRefreshResponse): Promise<void>; loadTokens(): Promise<Map<string, AbsoluteToken>>; authorisationCodeGrantFlow(): Promise<AccessTokenResponse>; deviceFlow(): Promise<DeviceAccessTokenResponse>; retryDeviceFlow(reason?: string): void; setAuthorisationStatusFailed(err: unknown, retryable?: boolean, help?: AuthHelp): void; setAuthorisationStatus(status: AuthorisationStatus): void; getAuthorisationStatus(immediate?: boolean): Promise<AuthorisationStatus>; authorisationRequest(): Promise<AuthorisationResponse & { redirect_uri: string; }>; authorisationRequestURL(redirect_uri?: string): URL; parseAuthorisationResponse(url: URL | string): AuthorisationResponse; accessTokenRequest(code: string, redirect_uri?: string): Promise<AccessTokenResponse>; deviceAuthorisationRequest(): Promise<DeviceAuthorisationResponse>; deviceAccessTokenRequest(device_code: string): Promise<DeviceAccessTokenResponse>; accessTokenRefreshRequest(refresh_token: string): Promise<AccessTokenRefreshResponse>; get authorizationHeader(): string | undefined; prepareRequest(method: Method, path: string, options?: Partial<Request>): Promise<Request>; canRetry(err: unknown): boolean; } //# sourceMappingURL=api-ua-auth.d.ts.map