/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { WindowCovering } from "#clusters/window-covering";
import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
import { WindowCoveringInterface } from "./WindowCoveringInterface.js";
import { ClusterType } from "#types";
import { Identity } from "#general";
/**
 * WindowCoveringBehavior is the base class for objects that support interaction with {@link WindowCovering.Cluster}.
 *
 * WindowCovering.Cluster requires you to enable one or more optional features. You can do so using
 * {@link WindowCoveringBehavior.with}.
 */
export declare const WindowCoveringBehaviorConstructor: ClusterBehavior.Type<ClusterType.Of<{
    readonly id: 258;
    readonly name: "WindowCovering";
    readonly revision: 6;
    readonly features: {
        readonly lift: import("#types").BitFlag;
        readonly tilt: import("#types").BitFlag;
        readonly positionAwareLift: import("#types").BitFlag;
        readonly absolutePosition: import("#types").BitFlag;
        readonly positionAwareTilt: import("#types").BitFlag;
    };
    readonly attributes: {
        readonly type: import("#types").FixedAttribute<WindowCovering.WindowCoveringType, any>;
        readonly configStatus: import("#types").Attribute<import("#types").TypeFromPartialBitSchema<{
            operational: import("#types").BitFlag;
            onlineReserved: import("#types").BitFlag;
            liftMovementReversed: import("#types").BitFlag;
            liftPositionAware: import("#types").BitFlag;
            tiltPositionAware: import("#types").BitFlag;
            liftEncoderControlled: import("#types").BitFlag;
            tiltEncoderControlled: import("#types").BitFlag;
        }>, any>;
        readonly operationalStatus: import("#types").Attribute<import("#types").TypeFromPartialBitSchema<{
            global: import("#types").BitFieldEnum<WindowCovering.MovementStatus>;
            lift: import("#types").BitFieldEnum<WindowCovering.MovementStatus>;
            tilt: import("#types").BitFieldEnum<WindowCovering.MovementStatus>;
        }>, any>;
        readonly endProductType: import("#types").FixedAttribute<WindowCovering.EndProductType, any>;
        readonly mode: import("#types").WritableAttribute<import("#types").TypeFromPartialBitSchema<{
            motorDirectionReversed: import("#types").BitFlag;
            calibrationMode: import("#types").BitFlag;
            maintenanceMode: import("#types").BitFlag;
            ledFeedback: import("#types").BitFlag;
        }>, any>;
        readonly safetyStatus: import("#types").OptionalAttribute<import("#types").TypeFromPartialBitSchema<{
            remoteLockout: import("#types").BitFlag;
            tamperDetection: import("#types").BitFlag;
            failedCommunication: import("#types").BitFlag;
            positionFailure: import("#types").BitFlag;
            thermalProtection: import("#types").BitFlag;
            obstacleDetected: import("#types").BitFlag;
            power: import("#types").BitFlag;
            stopInput: import("#types").BitFlag;
            motorJammed: import("#types").BitFlag;
            hardwareFailure: import("#types").BitFlag;
            manualOperation: import("#types").BitFlag;
            protection: import("#types").BitFlag;
        }>, any>;
    };
    readonly commands: {
        readonly upOrOpen: import("#types").Command<void, void, any>;
        readonly downOrClose: import("#types").Command<void, void, any>;
        readonly stopMotion: import("#types").Command<void, void, any>;
    };
    readonly extensions: readonly [{
        readonly flags: {
            readonly lift: true;
            readonly positionAwareLift: true;
            readonly absolutePosition: true;
        };
        readonly component: {
            readonly attributes: {
                readonly physicalClosedLimitLift: import("#types").OptionalFixedAttribute<number, any>;
                readonly currentPositionLift: import("#types").OptionalAttribute<number | null, any>;
                readonly installedOpenLimitLift: import("#types").Attribute<number, any>;
                readonly installedClosedLimitLift: import("#types").Attribute<number, any>;
            };
        };
    }, {
        readonly flags: {
            readonly tilt: true;
            readonly positionAwareTilt: true;
            readonly absolutePosition: true;
        };
        readonly component: {
            readonly attributes: {
                readonly physicalClosedLimitTilt: import("#types").OptionalFixedAttribute<number, any>;
                readonly currentPositionTilt: import("#types").OptionalAttribute<number | null, any>;
                readonly installedOpenLimitTilt: import("#types").Attribute<number, any>;
                readonly installedClosedLimitTilt: import("#types").Attribute<number, any>;
            };
        };
    }, {
        readonly flags: {
            readonly lift: true;
        };
        readonly component: {
            readonly attributes: {
                readonly numberOfActuationsLift: import("#types").OptionalAttribute<number, any>;
            };
            readonly commands: {
                readonly goToLiftPercentage: import("#types").OptionalCommand<import("#types").TypeFromFields<{
                    liftPercent100thsValue: import("#types").FieldType<number>;
                }>, void, any>;
            };
        };
    }, {
        readonly flags: {
            readonly tilt: true;
        };
        readonly component: {
            readonly attributes: {
                readonly numberOfActuationsTilt: import("#types").OptionalAttribute<number, any>;
            };
            readonly commands: {
                readonly goToTiltPercentage: import("#types").OptionalCommand<import("#types").TypeFromFields<{
                    tiltPercent100thsValue: import("#types").FieldType<number>;
                }>, void, any>;
            };
        };
    }, {
        readonly flags: {
            readonly lift: true;
            readonly positionAwareLift: true;
        };
        readonly component: {
            readonly attributes: {
                readonly currentPositionLiftPercentage: import("#types").OptionalAttribute<number | null, any>;
                readonly targetPositionLiftPercent100ths: import("#types").Attribute<number | null, any>;
                readonly currentPositionLiftPercent100ths: import("#types").Attribute<number | null, any>;
            };
            readonly commands: {
                readonly goToLiftPercentage: import("#types").Command<import("#types").TypeFromFields<{
                    liftPercent100thsValue: import("#types").FieldType<number>;
                }>, void, any>;
            };
        };
    }, {
        readonly flags: {
            readonly tilt: true;
            readonly positionAwareTilt: true;
        };
        readonly component: {
            readonly attributes: {
                readonly currentPositionTiltPercentage: import("#types").OptionalAttribute<number | null, any>;
                readonly targetPositionTiltPercent100ths: import("#types").Attribute<number | null, any>;
                readonly currentPositionTiltPercent100ths: import("#types").Attribute<number | null, any>;
            };
            readonly commands: {
                readonly goToTiltPercentage: import("#types").Command<import("#types").TypeFromFields<{
                    tiltPercent100thsValue: import("#types").FieldType<number>;
                }>, void, any>;
            };
        };
    }, {
        readonly flags: {
            readonly lift: true;
            readonly absolutePosition: true;
        };
        readonly component: {
            readonly commands: {
                readonly goToLiftValue: import("#types").OptionalCommand<import("#types").TypeFromFields<{
                    liftValue: import("#types").FieldType<number>;
                }>, void, any>;
            };
        };
    }, {
        readonly flags: {
            readonly tilt: true;
            readonly absolutePosition: true;
        };
        readonly component: {
            readonly commands: {
                readonly goToTiltValue: import("#types").OptionalCommand<import("#types").TypeFromFields<{
                    tiltValue: import("#types").FieldType<number>;
                }>, void, any>;
            };
        };
    }, {
        readonly flags: {
            readonly positionAwareLift: true;
            readonly lift: false;
        };
        readonly component: false;
    }, {
        readonly flags: {
            readonly positionAwareTilt: true;
            readonly tilt: false;
        };
        readonly component: false;
    }, {
        readonly flags: {
            readonly lift: false;
            readonly tilt: false;
        };
        readonly component: false;
    }];
}>, ClusterBehavior.Type<ClusterType.Of<{
    readonly id: 0;
    readonly revision: 0;
    readonly name: "Unknown";
    readonly attributes: {};
    readonly commands: {};
    readonly events: {};
}>, typeof ClusterBehavior, WindowCoveringInterface>, WindowCoveringInterface>;
export interface WindowCoveringBehaviorConstructor extends Identity<typeof WindowCoveringBehaviorConstructor> {
}
export declare const WindowCoveringBehavior: WindowCoveringBehaviorConstructor;
export interface WindowCoveringBehavior extends InstanceType<WindowCoveringBehaviorConstructor> {
}
export declare namespace WindowCoveringBehavior {
    interface State extends InstanceType<typeof WindowCoveringBehavior.State> {
    }
}
//# sourceMappingURL=WindowCoveringBehavior.d.ts.map