/**
 * 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