homebridge-aeg-robot
Version:
AEG RX9 / Electrolux Pure i9 robot vacuum plugin for Homebridge
63 lines • 2.67 kB
TypeScript
import { Logger, LogLevel } from 'homebridge';
import { Dispatcher } from 'undici';
import { Checker, IErrorDetail } from 'ts-interface-checker';
import { IncomingHttpHeaders } from 'undici/types/header.js';
import { Config } from './config-types.js';
export type Binary = Dispatcher.ResponseData['body'];
export type Response = Dispatcher.ResponseData;
export type Method = Dispatcher.HttpMethod;
export type Headers = IncomingHttpHeaders;
export type Query = Dispatcher.DispatchOptions['query'];
export interface UAOptions {
headers?: Headers;
signal?: AbortSignal;
[index: string]: unknown;
}
export type RequestParams = [
method: Method,
path: string,
options: UAOptions | undefined,
body: object | undefined
];
export interface Request {
path: string;
method: Method;
body?: string;
headers: Headers;
idempotent?: boolean;
signal?: AbortSignal;
}
export interface RequestResponse {
request: Request;
response: Response;
}
export declare const ELECTROLUX_GROUP_API_URL = "https://api.developer.electrolux.one";
export declare class AEGUserAgent {
readonly log: Logger;
readonly config: Config;
private readonly timeout;
readonly retryDelay: {
min: number;
max: number;
factor: number;
};
private readonly defaultHeaders;
private readonly client;
private requestCount;
constructor(log: Logger, config: Config);
put(path: string, body: object, options?: UAOptions): Promise<void>;
post(path: string, body: object, options?: UAOptions): Promise<void>;
requestEmpty(...params: RequestParams): Promise<void>;
getJSON<Type>(checker: Checker, path: string, options?: UAOptions): Promise<Type>;
putJSON<Type>(checker: Checker, path: string, body: object, options?: UAOptions): Promise<Type>;
postJSON<Type>(checker: Checker, path: string, body: object, options?: UAOptions): Promise<Type>;
requestJSON<Type>(checker: Checker, ...params: RequestParams): Promise<Type>;
request(method: Method, path: string, options?: UAOptions, body?: object, headers?: Headers): Promise<RequestResponse>;
prepareRequest(method: Method, path: string, options?: UAOptions, body?: object, headers?: Headers): Request | Promise<Request>;
canRetry(err: unknown, options?: UAOptions): boolean;
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, errors: IErrorDetail[], json: unknown): void;
}
//# sourceMappingURL=aegapi-ua.d.ts.map