UNPKG

homebridge-aeg-robot

Version:

AEG RX9 / Electrolux Pure i9 robot vacuum plugin for Homebridge

31 lines 1.44 kB
import { Logger } from 'homebridge'; import { AEGAPI } from './aegapi.js'; import { ApplianceId, Appliances } from './aegapi-types.js'; interface Failure { logPrefix: string; testName: string; error: unknown; } type TestableMethod = (...args: never[]) => unknown; type TestableMethodNames<API> = keyof { [K in keyof API as API[K] extends TestableMethod ? K : never]: unknown; }; type Tester<API> = <Method extends TestableMethodNames<API>>(method: Method, ...args: Parameters<Extract<API[Method], TestableMethod>>) => Promise<ReturnType<Extract<API[Method], TestableMethod>> | undefined>; export declare class AEGAPITest { readonly log: Logger; readonly api: AEGAPI; readonly unsafe: boolean; tests: number; failures: Failure[]; constructor(log: Logger, api: AEGAPI, unsafe: boolean); runAllTests(): Promise<void>; runSafeGenericTests(): Promise<Appliances | undefined>; runSafeRX9Tests(applianceId: ApplianceId): Promise<void>; runUnsafeRX9Tests(applianceId: ApplianceId): Promise<void>; selectRX9(appliances?: Appliances): ApplianceId[]; makeTester<API>(api: API): Tester<API>; test<API, Method extends TestableMethodNames<API>>(api: API, method: Method, ...args: Parameters<Extract<API[Method], TestableMethod>>): Promise<ReturnType<Extract<API[Method], TestableMethod>> | undefined>; summariseResults(): void; } export {}; //# sourceMappingURL=aegapi-test.d.ts.map