/**
 * State Manager
 *
 * Handles accessory state updates, state retrieval, command triggering,
 * and state change notifications.
 */
import type { EventEmitter } from 'node:events';
import type { InternalMatterAccessory } from '../types.js';
export declare class StateManager {
    private readonly accessories;
    private readonly emitter;
    private readonly getMonitoringEnabled;
    constructor(accessories: Map<string, InternalMatterAccessory>, emitter: EventEmitter, getMonitoringEnabled: () => boolean);
    /**
     * Update the state of a Matter accessory (Plugin API)
     */
    updateAccessoryState(uuid: string, cluster: string, attributes: Record<string, unknown>, partId?: string): Promise<void>;
    /**
     * Apply an ElectricalEnergyMeasurement update. Non-null energy readings are
     * routed through the matter.js setMeasurement() helper, which updates the
     * attributes and also emits the CumulativeEnergyMeasured /
     * PeriodicEnergyMeasured events the spec requires. Everything else (accuracy,
     * null clears) goes through a plain state set.
     */
    private applyEnergyMeasurementUpdate;
    /**
     * Get a Matter accessory's current state
     */
    getAccessoryState(uuid: string, cluster: string, partId?: string): Record<string, unknown> | undefined;
    /**
     * Trigger a command on a Matter accessory
     */
    triggerCommand(uuid: string, cluster: string, command: string, args?: Record<string, unknown>, partId?: string): Promise<void>;
    /**
     * Notify that an accessory's state has changed
     */
    notifyStateChange(uuid: string, cluster: string, state: Record<string, unknown>, partId?: string): void;
}
//# sourceMappingURL=StateManager.d.ts.map