/**
 * @description This file contains the Evse class.
 * @file src/devices/energy-evse.ts
 * @author Luca Liguori
 * @contributor Ludovic BOUÉ
 * @created 2025-05-27
 * @version 1.1.0
 * @license Apache-2.0
 *
 * Copyright 2025, 2026, 2027 Luca Liguori.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { MaybePromise } from '@matter/main';
import { EnergyEvseServer } from '@matter/main/behaviors/energy-evse';
import { EnergyEvseModeServer } from '@matter/main/behaviors/energy-evse-mode';
import { EnergyEvse, EnergyEvseMode } from '@matter/main/clusters';
import { ModeBase } from '@matter/main/clusters/mode-base';
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
export declare class Evse extends MatterbridgeEndpoint {
    /**
     * Creates an instance of the EVSE class.
     *
     * @param {string} name - The name of the EVSE.
     * @param {string} serial - The serial number of the EVSE.
     * @param {number} [currentMode] - The current mode of the EnergyEvseMode cluster. Defaults to mode 1 (EnergyEvseMode.ModeTag.Manual).
     * @param {EnergyEvseMode.ModeOption[]} [supportedModes] - The supported modes for the EnergyEvseMode cluster. This is a fixed attribute that defaults to a predefined set of EnergyEvseMode cluster modes.
     * @param {EnergyEvse.State} [state] - The current state of the EVSE. Defaults to NotPluggedIn.
     * @param {EnergyEvse.SupplyState} [supplyState] - The supply state of the EVSE. Defaults to Disabled.
     * @param {EnergyEvse.FaultState} [faultState] - The fault state of the EVSE. Defaults to NoError.
     * @param {number} [voltage] - The voltage value in millivolts. Defaults to null if not provided.
     * @param {number} [current] - The current value in milliamperes. Defaults to null if not provided.
     * @param {number} [power] - The power value in milliwatts. Defaults to null if not provided.
     * @param {number} [energy] - The total consumption value in mW/h. Defaults to null if not provided.
     * @param {number} [absMinPower] - Indicate the minimum electrical power in mw that the ESA can consume when switched on. Defaults to `0` if not provided.
     * @param {number} [absMaxPower] - Indicate the maximum electrical power in mw that the ESA can consume when switched on. Defaults to `0` if not provided.
     */
    constructor(name: string, serial: string, currentMode?: number, supportedModes?: EnergyEvseMode.ModeOption[], state?: EnergyEvse.State, supplyState?: EnergyEvse.SupplyState, faultState?: EnergyEvse.FaultState, voltage?: number | bigint | null, current?: number | bigint | null, power?: number | bigint | null, energy?: number | bigint | null, absMinPower?: number, absMaxPower?: number);
    /**
     * Creates a default EnergyEvseServer Cluster Server.
     *
     * @param {EnergyEvse.State} [state] - The initial state of the EnergyEvse cluster. Defaults to EnergyEvse.State.NotPluggedIn.
     * @param {EnergyEvse.SupplyState} [supplyState] - The initial supply state of the EnergyEvse cluster. Defaults to EnergyEvse.SupplyState.ChargingEnabled.
     * @param {EnergyEvse.FaultState} [faultState] - The initial fault state of the EnergyEvse cluster. Defaults to EnergyEvse.FaultState.NoError.
     * @returns {this} The current MatterbridgeEndpoint instance for chaining.
     */
    createDefaultEnergyEvseClusterServer(state?: EnergyEvse.State, supplyState?: EnergyEvse.SupplyState, faultState?: EnergyEvse.FaultState): this;
    /**
     * Creates a default EnergyEvseMode Cluster Server.
     *
     * @param {number} [currentMode] - The current mode of the EnergyEvseMode cluster. Defaults to mode 1 (EnergyEvseMode.ModeTag.Manual).
     * @param {EnergyEvseMode.ModeOption[]} [supportedModes] - The supported modes for the EnergyEvseMode cluster. Defaults all EnergyEvseMode cluster modes.
     *
     * @returns {this} The current MatterbridgeEndpoint instance for chaining.
     */
    createDefaultEnergyEvseModeClusterServer(currentMode?: number, supportedModes?: EnergyEvseMode.ModeOption[]): this;
}
export declare class MatterbridgeEnergyEvseServer extends EnergyEvseServer {
    disable(): MaybePromise;
    enableCharging(request: EnergyEvse.EnableChargingRequest): MaybePromise;
}
export declare class MatterbridgeEnergyEvseModeServer extends EnergyEvseModeServer {
    changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
}
//# sourceMappingURL=evse.d.ts.map