/**
 * This file contains the Evse class.
 *
 * @file energy-evse.ts
 * @author Luca Liguori
 * @contributor Ludovic BOUÉ
 * @date 2025-05-27
 * @version 1.1.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} [absMinPower=0] - Indicate the minimum electrical power that the ESA can consume when switched on. Defaults to `0` if not provided.
     * @param {number} [absMaxPower=0] - Indicate the maximum electrical power 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, absMinPower?: number, absMaxPower?: number);
    /**
     * Creates a default EnergyEvseServer Cluster Server.
     *
     */
    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