/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { WaterHeaterManagementServer as BaseWaterHeaterManagementServer } from "../behaviors/water-heater-management/WaterHeaterManagementServer.js";
import { WaterHeaterModeServer as BaseWaterHeaterModeServer } from "../behaviors/water-heater-mode/WaterHeaterModeServer.js";
import { ThermostatServer as BaseThermostatServer } from "../behaviors/thermostat/ThermostatServer.js";
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { Identity } from "@matter/general";
/**
 * A water heater is a device that is generally installed in properties to heat water for showers, baths etc.
 *
 * WaterHeaterDevice requires Thermostat cluster but Thermostat is not added by default because you must select the
 * features your device supports. You can add manually using WaterHeaterDevice.with().
 *
 * @see {@link MatterSpecification.v151.Device} § 14.2
 */
export interface WaterHeaterDevice extends Identity<typeof WaterHeaterDeviceDefinition> {
}
export declare namespace WaterHeaterRequirements {
    /**
     * The WaterHeaterManagement cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link WaterHeaterManagementServer} for convenience.
     */
    const WaterHeaterManagementServer: typeof BaseWaterHeaterManagementServer;
    /**
     * The WaterHeaterMode cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link WaterHeaterModeServer} for convenience.
     */
    const WaterHeaterModeServer: typeof BaseWaterHeaterModeServer;
    /**
     * The Thermostat cluster is required by the Matter specification.
     *
     * This version of {@link ThermostatServer} is specialized per the specification.
     */
    const ThermostatServer: import("../index.js").ClusterBehavior.Type<typeof BaseThermostatServer, import("@matter/types").ClusterType.WithSupportedFeatures<import("@matter/types/clusters/thermostat").Thermostat, {
        autoMode: false;
        cooling: false;
        heating: true;
        localTemperatureNotExposed: false;
        matterScheduleConfiguration: false;
        occupancy: false;
        presets: false;
        setback: false;
    }>, import("@matter/types").ClusterType.Concrete, typeof import("../behaviors/thermostat/ThermostatServer.js").ThermostatBaseServer.Internal, "thermostat">;
    /**
     * The Identify cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link IdentifyServer} for convenience.
     */
    const IdentifyServer: typeof BaseIdentifyServer;
    /**
     * An implementation for each server cluster supported by the endpoint per the Matter specification.
     */
    const server: {
        mandatory: {
            WaterHeaterManagement: typeof BaseWaterHeaterManagementServer;
            WaterHeaterMode: typeof BaseWaterHeaterModeServer;
            Thermostat: import("../index.js").ClusterBehavior.Type<typeof BaseThermostatServer, import("@matter/types").ClusterType.WithSupportedFeatures<import("@matter/types/clusters/thermostat").Thermostat, {
                autoMode: false;
                cooling: false;
                heating: true;
                localTemperatureNotExposed: false;
                matterScheduleConfiguration: false;
                occupancy: false;
                presets: false;
                setback: false;
            }>, import("@matter/types").ClusterType.Concrete, typeof import("../behaviors/thermostat/ThermostatServer.js").ThermostatBaseServer.Internal, "thermostat">;
        };
        optional: {
            Identify: typeof BaseIdentifyServer;
        };
    };
}
export declare const WaterHeaterDeviceDefinition: MutableEndpoint.With<import("../index.js").EndpointType.For<{
    readonly name: "WaterHeater";
    readonly deviceType: 1295;
    readonly deviceRevision: 1;
    readonly requirements: typeof WaterHeaterRequirements;
    readonly behaviors: {
        readonly waterHeaterManagement: typeof BaseWaterHeaterManagementServer;
    } & {
        readonly waterHeaterMode: typeof BaseWaterHeaterModeServer;
    };
}>, {
    readonly waterHeaterManagement: typeof BaseWaterHeaterManagementServer;
} & {
    readonly waterHeaterMode: typeof BaseWaterHeaterModeServer;
}, {}>;
export declare const WaterHeaterDevice: WaterHeaterDevice;
//# sourceMappingURL=water-heater.d.ts.map