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; post(path: string, body: object, options?: UAOptions): Promise; requestEmpty(...params: RequestParams): Promise; getJSON(checker: Checker, path: string, options?: UAOptions): Promise; putJSON(checker: Checker, path: string, body: object, options?: UAOptions): Promise; postJSON(checker: Checker, path: string, body: object, options?: UAOptions): Promise; requestJSON(checker: Checker, ...params: RequestParams): Promise; request(method: Method, path: string, options?: UAOptions, body?: object, headers?: Headers): Promise; prepareRequest(method: Method, path: string, options?: UAOptions, body?: object, headers?: Headers): Request | Promise; canRetry(err: unknown, options?: UAOptions): boolean; requestCore(logPrefix: string, request: Request): Promise; 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