UNPKG

homebridge

Version:
48 lines 2.32 kB
/** * WindowCovering Cluster Behavior * * Handles window covering commands for blinds, shades, and curtains */ import type { WindowCovering } from '@matter/main/clusters'; import { WindowCoveringServer } from '@matter/main/behaviors/window-covering'; /** * Feature-rich variant of the public WindowCoveringServer. * * We extend the public `WindowCoveringServer` (not the internal * `WindowCoveringBaseServer`) per apollon77's guidance on homebridge#3905 — the * Base class exists so matter.js's default-implementation methods have a concrete * feature set to compile against, and consumers shouldn't depend on it. Instead, * we declare the superset of features our overrides need via `.with(...)`. At * endpoint-attachment time, matter.js still narrows the effective feature set to * whatever the device type declares, so an endpoint that declares only Lift won't * advertise Tilt commands. */ declare const FeatureRichWindowCoveringServer: import("@matter/node").ClusterBehavior.Type<typeof WindowCoveringServer, import("@matter/main/types").ClusterType.WithSupportedFeatures<WindowCovering, { lift: true; tilt: true; positionAwareLift: true; positionAwareTilt: true; }>, import("@matter/main/types").ClusterType.Concrete, typeof import("@matter/main/behaviors/window-covering").WindowCoveringBaseServer.Internal, "windowCovering">; /** * Custom WindowCovering Server that calls plugin handlers. */ export declare class HomebridgeWindowCoveringServer extends FeatureRichWindowCoveringServer { /** * Get the registry for this behavior's endpoint */ private getRegistry; /** * Sync window covering position state to cache * @param endpointId - The endpoint ID * @param targetProperty - Target position property name (e.g., 'targetPositionLiftPercent100ths') * @param currentProperty - Current position property name (e.g., 'currentPositionLiftPercent100ths') */ private syncPositionStateToCache; upOrOpen(): Promise<void>; downOrClose(): Promise<void>; stopMotion(): Promise<void>; goToLiftPercentage(request: WindowCovering.GoToLiftPercentageRequest): Promise<void>; goToTiltPercentage(request: WindowCovering.GoToTiltPercentageRequest): Promise<void>; } export {}; //# sourceMappingURL=WindowCoveringBehavior.d.ts.map