/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
import { TemperatureControlInterface } from "./TemperatureControlInterface.js";
import { ClusterType } from "@matter/types";
import { Identity } from "@matter/general";
/**
 * TemperatureControlBehavior is the base class for objects that support interaction with
 * {@link TemperatureControl.Cluster}.
 *
 * TemperatureControl.Cluster requires you to enable one or more optional features. You can do so using
 * {@link TemperatureControlBehavior.with}.
 */
export declare const TemperatureControlBehaviorConstructor: ClusterBehavior.Type<ClusterType.Of<{
    readonly id: 86;
    readonly name: "TemperatureControl";
    readonly revision: 1;
    readonly features: {
        readonly temperatureNumber: import("@matter/types").BitFlag;
        readonly temperatureLevel: import("@matter/types").BitFlag;
        readonly temperatureStep: import("@matter/types").BitFlag;
    };
    readonly commands: {
        readonly setTemperature: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
            targetTemperature: import("@matter/types").OptionalFieldType<number>;
            targetTemperatureLevel: import("@matter/types").OptionalFieldType<number>;
        }>, void, any>;
    };
    readonly extensions: readonly [{
        readonly flags: {
            readonly temperatureNumber: true;
        };
        readonly component: {
            readonly attributes: {
                readonly temperatureSetpoint: import("@matter/types").Attribute<number, any>;
                readonly minTemperature: import("@matter/types").FixedAttribute<number, any>;
                readonly maxTemperature: import("@matter/types").FixedAttribute<number, any>;
            };
        };
    }, {
        readonly flags: {
            readonly temperatureStep: true;
        };
        readonly component: {
            readonly attributes: {
                readonly step: import("@matter/types").FixedAttribute<number, any>;
            };
        };
    }, {
        readonly flags: {
            readonly temperatureLevel: true;
        };
        readonly component: {
            readonly attributes: {
                readonly selectedTemperatureLevel: import("@matter/types").Attribute<number, any>;
                readonly supportedTemperatureLevels: import("@matter/types").Attribute<string[], any>;
            };
        };
    }, {
        readonly flags: {
            readonly temperatureStep: true;
            readonly temperatureNumber: false;
        };
        readonly component: false;
    }, {
        readonly flags: {
            readonly temperatureNumber: true;
            readonly temperatureLevel: true;
        };
        readonly component: false;
    }, {
        readonly flags: {
            readonly temperatureNumber: false;
            readonly temperatureLevel: 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, TemperatureControlInterface>, TemperatureControlInterface>;
export interface TemperatureControlBehaviorConstructor extends Identity<typeof TemperatureControlBehaviorConstructor> {
}
export declare const TemperatureControlBehavior: TemperatureControlBehaviorConstructor;
export interface TemperatureControlBehavior extends InstanceType<TemperatureControlBehaviorConstructor> {
}
export declare namespace TemperatureControlBehavior {
    interface State extends InstanceType<typeof TemperatureControlBehavior.State> {
    }
}
//# sourceMappingURL=TemperatureControlBehavior.d.ts.map