/** * ACE Property Registry — scraped from a real single-socket Alfen NG910 EVSE. * * The data structure mirrors the real `/api/prop` JSON response: * { version, properties: [ { id, access, type, len, cat, value } ], offset, total } * * Categories known from the real device: * generic, generic2, comm, ocpp, states, meter1, meter4, temp, accelero, * display, leds, scn, MbusTCP * * Some values are static hardware constants; others are marked as "dynamic" * and will be overridden at runtime with actual virtual-charger state. */ export interface AceProperty { id: string; access: number; type: number; len: number; cat: string; value: string | number; } export interface AcePropResponse { version: number; properties: AceProperty[]; offset: number; total: number; } export interface AceWhitelistEntry { tag: string; parent: string; status: number; expiryDate: number; } export interface AceWhitelistResponse { version: number; whitelist: (AceWhitelistEntry | null)[]; } export interface AceLogResponse { version: number; log: string[]; offset: number; total: number; } export interface AceTransactionsResponse { version: number; [key: string]: unknown; } export interface AceChargingProfilesResponse { version: number; ChargingProfileIDs: number[]; } export type DynamicKey = 'stationId' | 'stationName' | 'firmwareVersion' | 'stationModel' | 'modelFamily' | 'stationVendor' | 'temperature' | 'csmsUrl' | 'lanIp' | 'voltage' | 'frequency' | 'connectorState' | 'uptime' | 'latitude' | 'longitude'; export declare const DYNAMIC_PROPERTY_IDS: Record; export declare const ACE_CATEGORIES: Record; /** * Return a deep‑copied slice of properties for a given category, * paginated with `offset` (default 0) and page size 32 (real charger default). */ export declare function getPropertiesByCategory(cat: string, offset?: number, pageSize?: number): AcePropResponse; /** * Return properties matching a comma-separated list of IDs. * Mirrors real behaviour of `/api/prop?ids=2051_0,2053_0,...`. */ export declare function getPropertiesByIds(ids: string[]): AcePropResponse; /** * Patch dynamic property values at request time. * * Callers provide a partial map of DynamicKey → runtime value; * matching property IDs in the given array are updated in‑place. */ export declare function applyDynamicValues(properties: AceProperty[], dynamicValues: Partial>): void; export declare function getWhitelist(index: number, pageSize?: number): AceWhitelistResponse; export declare function addWhitelistEntry(entry: AceWhitelistEntry): void; export declare function deleteWhitelistEntry(tag: string): boolean; export declare function clearWhitelist(): void; export declare function resetWhitelist(): void; export declare function getLog(offset: number, pageSize?: number): AceLogResponse; export declare function getTransactions(_offset: number): AceTransactionsResponse; export declare function getChargingProfiles(): AceChargingProfilesResponse;