import { TapoApiRequest, TapoApiResponse } from '../types';
export interface EnergyUsageData {
    current_power?: number;
    today_runtime?: number;
    month_runtime?: number;
    today_energy?: number;
    month_energy?: number;
    local_time?: string;
    electricity_charge?: number[];
}
export interface EnergyStatistics {
    power_usage?: {
        today?: number;
        past7?: number[];
        past30?: number[];
    };
    time_usage?: {
        today?: number;
        past7?: number[];
        past30?: number[];
    };
}
/**
 * Controller for energy monitoring functionality
 * Single responsibility: Energy data retrieval and management
 */
export declare class EnergyController {
    private readonly sendRequest;
    constructor(sendRequest: (request: TapoApiRequest) => Promise<TapoApiResponse>);
    /**
     * Get current energy usage information
     */
    getEnergyUsage(): Promise<EnergyUsageData>;
    /**
     * Get current power consumption
     */
    getCurrentPower(): Promise<number>;
    /**
     * Get energy statistics for specified period
     */
    getEnergyStatistics(interval?: 'day' | 'week' | 'month'): Promise<EnergyStatistics>;
    /**
     * Check if device supports energy monitoring
     */
    static supportsEnergyMonitoring(deviceModel: string): boolean;
    /**
     * Validate energy usage data
     */
    validateEnergyData(data: EnergyUsageData): boolean;
    /**
     * Format energy data for display
     */
    formatEnergyData(data: EnergyUsageData): string;
    /**
     * Get start timestamp for statistics query
     */
    private getStartTimestamp;
}
