import type { AxiosInstance, AxiosRequestConfig } from 'axios'; export type DeviceType = 'brp069' | 'brp084' | 'brp072c' | 'airbase' | 'skyfi'; export type DaikinMode = 'off' | 'auto' | 'auto-1' | 'auto-7' | 'cool' | 'heat' | 'dry' | 'fan'; export type FanRate = 'auto' | 'silence' | '1' | '2' | '3' | '4' | '5' | 'low' | 'medium' | 'high' | 'low/auto' | 'mid/auto' | 'high/auto'; export type SwingMode = 'off' | 'vertical' | 'horizontal' | '3d' | 'both'; export interface TranslationMap { [key: string]: { [daikinValue: string]: string; }; } export interface ValuesSummary { [key: string]: string; } export interface ResourceInfo { resource: string; lastUpdate: Date; } export interface EnergyConsumptionState { datetime: Date; firstState: boolean; today: number | null; yesterday: number | null; } export interface EnergyConsumptionParser { dimension: string; reducer: (values: number[]) => number; divider: number; } export interface DaikinValues { [key: string]: string; } export interface DiscoveryDevice { name: string; ip: string; mac: string; port?: number; } export interface HttpClientOptions { timeout?: number; } export interface DaikinHttpClient { get(url: string, config?: AxiosRequestConfig): Promise; post(url: string, data?: unknown, config?: AxiosRequestConfig): Promise; } export interface ApplianceOptions { deviceId: string; session?: AxiosInstance; password?: string; key?: string; uuid?: string; fetchOptional?: boolean; } export interface DeviceInfo { mac: string; ip: string; name?: string; model?: string; firmwareVersion?: string; } export const ATTR_TOTAL = 'total'; export const ATTR_COOL = 'cool'; export const ATTR_HEAT = 'heat'; export const TIME_TODAY = 'today'; export const TIME_YESTERDAY = 'yesterday'; export const TIME_LAST_7_DAYS = '7days'; export const TIME_THIS_YEAR = 'this_year'; export const TIME_LAST_YEAR = 'last_year'; export type EnergyMode = typeof ATTR_TOTAL | typeof ATTR_COOL | typeof ATTR_HEAT; export type TimePeriod = typeof TIME_TODAY | typeof TIME_YESTERDAY | typeof TIME_LAST_7_DAYS | typeof TIME_THIS_YEAR | typeof TIME_LAST_YEAR;