/**
 * @license
 * Copyright 2022-2024 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { PumpConfigurationAndControl } from "#clusters/pump-configuration-and-control";
import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
import { ClusterType } from "#types";
/**
 * PumpConfigurationAndControlBehavior is the base class for objects that support interaction with {@link
 * PumpConfigurationAndControl.Cluster}.
 *
 * PumpConfigurationAndControl.Cluster requires you to enable one or more optional features. You can do so using {@link
 * PumpConfigurationAndControlBehavior.with}.
 */
export declare const PumpConfigurationAndControlBehavior: ClusterBehavior.Type<ClusterType.Of<{
    readonly id: 512;
    readonly name: "PumpConfigurationAndControl";
    readonly revision: 4;
    readonly features: {
        readonly constantPressure: import("#types").BitFlag;
        readonly compensatedPressure: import("#types").BitFlag;
        readonly constantFlow: import("#types").BitFlag;
        readonly constantSpeed: import("#types").BitFlag;
        readonly constantTemperature: import("#types").BitFlag;
        readonly automatic: import("#types").BitFlag;
        readonly localOperation: import("#types").BitFlag;
    };
    readonly attributes: {
        readonly maxPressure: import("#types").FixedAttribute<number | null, any>;
        readonly maxSpeed: import("#types").FixedAttribute<number | null, any>;
        readonly maxFlow: import("#types").FixedAttribute<number | null, any>;
        readonly pumpStatus: import("#types").OptionalAttribute<import("#types").TypeFromPartialBitSchema<{
            deviceFault: import("#types").BitFlag;
            supplyFault: import("#types").BitFlag;
            speedLow: import("#types").BitFlag;
            speedHigh: import("#types").BitFlag;
            localOverride: import("#types").BitFlag;
            running: import("#types").BitFlag;
            remotePressure: import("#types").BitFlag;
            remoteFlow: import("#types").BitFlag;
            remoteTemperature: import("#types").BitFlag;
        }>, any>;
        readonly effectiveOperationMode: import("#types").Attribute<PumpConfigurationAndControl.OperationMode, any>;
        readonly effectiveControlMode: import("#types").Attribute<PumpConfigurationAndControl.ControlMode, any>;
        readonly capacity: import("#types").Attribute<number | null, any>;
        readonly speed: import("#types").OptionalAttribute<number | null, any>;
        readonly lifetimeRunningHours: import("#types").OptionalWritableAttribute<number | null, any>;
        readonly power: import("#types").OptionalAttribute<number | null, any>;
        readonly lifetimeEnergyConsumed: import("#types").OptionalWritableAttribute<number | null, any>;
        readonly operationMode: import("#types").WritableAttribute<PumpConfigurationAndControl.OperationMode, any>;
        readonly controlMode: import("#types").OptionalWritableAttribute<PumpConfigurationAndControl.ControlMode, any>;
    };
    readonly events: {
        readonly supplyVoltageLow: import("#types").OptionalEvent<void, any>;
        readonly supplyVoltageHigh: import("#types").OptionalEvent<void, any>;
        readonly powerMissingPhase: import("#types").OptionalEvent<void, any>;
        readonly systemPressureLow: import("#types").OptionalEvent<void, any>;
        readonly systemPressureHigh: import("#types").OptionalEvent<void, any>;
        readonly dryRunning: import("#types").OptionalEvent<void, any>;
        readonly motorTemperatureHigh: import("#types").OptionalEvent<void, any>;
        readonly pumpMotorFatalFailure: import("#types").OptionalEvent<void, any>;
        readonly electronicTemperatureHigh: import("#types").OptionalEvent<void, any>;
        readonly pumpBlocked: import("#types").OptionalEvent<void, any>;
        readonly sensorFailure: import("#types").OptionalEvent<void, any>;
        readonly electronicNonFatalFailure: import("#types").OptionalEvent<void, any>;
        readonly electronicFatalFailure: import("#types").OptionalEvent<void, any>;
        readonly generalFault: import("#types").OptionalEvent<void, any>;
        readonly leakage: import("#types").OptionalEvent<void, any>;
        readonly airDetection: import("#types").OptionalEvent<void, any>;
        readonly turbineOperation: import("#types").OptionalEvent<void, any>;
    };
    readonly extensions: readonly [{
        readonly flags: {
            readonly constantPressure: true;
        };
        readonly component: {
            readonly attributes: {
                readonly minConstPressure: import("#types").FixedAttribute<number | null, any>;
                readonly maxConstPressure: import("#types").FixedAttribute<number | null, any>;
            };
        };
    }, {
        readonly flags: {
            readonly automatic: true;
        };
        readonly component: {
            readonly attributes: {
                readonly minConstPressure: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly maxConstPressure: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly minCompPressure: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly maxCompPressure: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly minConstSpeed: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly maxConstSpeed: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly minConstFlow: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly maxConstFlow: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly minConstTemp: import("#types").OptionalFixedAttribute<number | null, any>;
                readonly maxConstTemp: import("#types").OptionalFixedAttribute<number | null, any>;
            };
        };
    }, {
        readonly flags: {
            readonly compensatedPressure: true;
        };
        readonly component: {
            readonly attributes: {
                readonly minCompPressure: import("#types").FixedAttribute<number | null, any>;
                readonly maxCompPressure: import("#types").FixedAttribute<number | null, any>;
            };
        };
    }, {
        readonly flags: {
            readonly constantSpeed: true;
        };
        readonly component: {
            readonly attributes: {
                readonly minConstSpeed: import("#types").FixedAttribute<number | null, any>;
                readonly maxConstSpeed: import("#types").FixedAttribute<number | null, any>;
            };
        };
    }, {
        readonly flags: {
            readonly constantFlow: true;
        };
        readonly component: {
            readonly attributes: {
                readonly minConstFlow: import("#types").FixedAttribute<number | null, any>;
                readonly maxConstFlow: import("#types").FixedAttribute<number | null, any>;
            };
        };
    }, {
        readonly flags: {
            readonly constantTemperature: true;
        };
        readonly component: {
            readonly attributes: {
                readonly minConstTemp: import("#types").FixedAttribute<number | null, any>;
                readonly maxConstTemp: import("#types").FixedAttribute<number | null, any>;
            };
        };
    }, {
        readonly flags: {
            readonly constantPressure: false;
            readonly compensatedPressure: false;
            readonly constantFlow: false;
            readonly constantSpeed: false;
            readonly constantTemperature: false;
        };
        readonly component: false;
    }];
}>, typeof ClusterBehavior, {
    components: never[];
}>;
type PumpConfigurationAndControlBehaviorType = InstanceType<typeof PumpConfigurationAndControlBehavior>;
export interface PumpConfigurationAndControlBehavior extends PumpConfigurationAndControlBehaviorType {
}
type StateType = InstanceType<typeof PumpConfigurationAndControlBehavior.State>;
export declare namespace PumpConfigurationAndControlBehavior {
    interface State extends StateType {
    }
}
export {};
//# sourceMappingURL=PumpConfigurationAndControlBehavior.d.ts.map