homebridge-homeconnect
Version:
A Homebridge plugin that connects Home Connect appliances to Apple HomeKit
56 lines • 2.46 kB
TypeScript
import { Logger, LogLevel } from 'homebridge';
import { IncomingHttpHeaders } from 'http';
import { Dispatcher } from 'undici';
import { Checker, IErrorDetail } from 'ts-interface-checker';
import { ParsedUrlQueryInput } from 'node:querystring';
import { ConfigPlugin } from './config-types.js';
export type Method = Dispatcher.HttpMethod;
export type Headers = IncomingHttpHeaders;
export type Response = Dispatcher.ResponseData;
export interface Request {
method: Method;
path: string;
headers: Headers;
body?: string;
idempotent?: boolean;
}
export type SSE = Record<string, string>;
export declare class APIUserAgent {
readonly log: Logger;
readonly config: ConfigPlugin;
readonly language: string;
readonly url: string;
private readonly requestTimeout;
private readonly streamTimeout;
private readonly defaultHeaders;
private requestCount;
private earliestRetry;
constructor(log: Logger, config: ConfigPlugin, language: string);
get<Type>(checker: Checker, path: string): Promise<Type>;
getStream(path: string): Promise<{
request: Request;
response: Response;
stream: AsyncGenerator<SSE, void, void>;
}>;
getRedirect(path: string): Promise<URL>;
put(path: string, body: object): Promise<void>;
post<Type>(checker: Checker, path: string, form: ParsedUrlQueryInput): Promise<Type>;
delete(path: string): Promise<void>;
getEmptyResponse(request: Request, response: Response): Promise<void>;
getJSONResponse<Type>(checker: Checker, request: Request, response: Response): Promise<Type>;
getRedirectResponse(request: Request, response: Response): Promise<URL>;
getSSEResponse(request: Request, response: Response): AsyncGenerator<SSE, void, void>;
request(method: Method, path: string, options?: Partial<Request>): Promise<{
request: Request;
response: Response;
}>;
prepareRequest(method: Method, path: string, options?: Partial<Request>): Promise<Request>;
canRetry(err: unknown): boolean;
get retryDelay(): number;
set retryDelay(ms: number);
requestCore(logPrefix: string, request: Request): Promise<Response>;
logHeaders(name: string, headers: Headers): void;
logBody(name: string, body: unknown): void;
logCheckerValidation(level: LogLevel, message: string, request: Request | undefined, errors: IErrorDetail[], json: unknown): void;
}
//# sourceMappingURL=api-ua.d.ts.map