/** * The output-capability specification (issue #63, package P1): which * native HomeKit sensor representations exist, which the plugin * actually implements, and where the extended (threshold-shell) * representation stands in. The INPUT side (what an AWN field means) * lives in awnCatalog.ts; whether an installation exposes a row is the * exposure policy (sensor-map.md §18). Design-checkpoint data, * consumed by tests only — the runtime's single authority on * implemented pairs remains WRAPPER_FOR_KIND_AND_MEASUREMENT. * * The specification states the EXACT mappings, not counts: every * implemented `(kind, measurement)` pair is listed with the WrapperId * the registry must resolve for it, under the HAP service the wrapper * must instantiate. The coverage suite cross-checks all three against * the runtime — set equality with the wrapper registry, per-pair * descriptor identity, and REAL HAP instantiation of each pair * asserting the declared service is present in the accessory's * service graph — so a swapped service claim, a renamed measurement, * or a drifted wrapper binding fails CI instead of passing on shape. * * Native HAP support is not a promise that Apple's Home app renders a * characteristic as a tile; Apple Home versus other HomeKit clients is * documented separately (plugin-ui.md / README), not promised here. */ export type NativeServiceStatus = /** A plugin kind produces this service today. */ 'implemented' /** Implemented for specific measurements only; not a general mapping. */ | 'implemented-narrow' /** The plugin reserves a kind, but no wrapper exists yet. */ | 'reserved-no-wrapper' /** The native service exists; the plugin vocabulary has no kind for it. */ | 'absent-from-vocabulary'; /** One implemented `(kind, measurement)` pair and its required wrapper. */ export interface ImplementedPairSpec { /** A `${kind}|${measurement}` key of WRAPPER_FOR_KIND_AND_MEASUREMENT. */ pair: string; /** The frozen WrapperId the registry must resolve for this pair. */ wrapperId: string; /** * The catalog version the pair arrived in (§19.2); absent = 1, the * frozen v2.0 set. Must equal WRAPPER_PAIR_SINCE — the coverage * suite pins the equality. */ since?: number; } export interface NativeServiceSpec { /** HAP service class name, as exposed on `platform.Service`. */ service: string; /** The plugin kinds that map to it, where any exist. */ kinds?: string[]; /** * The implemented pairs rendering AS this service. Present exactly * when status is implemented / implemented-narrow. */ pairs?: ImplementedPairSpec[]; status: NativeServiceStatus; /** Honest statement of scope and limits. */ scope: string; } /** * The 11 native sensor service families the installed HAP library * declares — the sensor-only scope, not every HomeKit actuator, * camera, or bridge service. */ export declare const NATIVE_SENSOR_SERVICES: ReadonlyArray; //# sourceMappingURL=capabilities.d.ts.map