import { type DeviceCapabilityPolicy } from './device-capability-service.js'; import { type DeviceGrantPolicy } from './device-grants.js'; import { type DeviceArtifactPolicy } from './device-capture-artifacts.js'; /** * Every `device.*` key this mapping reads, in schema order. Exported so a * surface's settings-coverage verification can name the exact set that is wired * rather than asserting on a hand-copied list. */ export declare const DEVICE_POSTURE_CONFIG_KEYS: readonly ["device.capabilities.mode", "device.capabilities.allowAlwaysOffer", "device.capabilities.requestTimeoutSeconds", "device.location.precision", "device.clipboard.readMode", "device.capture.retentionHours", "device.capture.maxArtifacts", "device.capture.sweepIntervalMinutes", "device.grants.expiryDays", "device.grants.maxPerNode", "device.grants.auditRetentionDays"]; export type DevicePostureConfigKey = typeof DEVICE_POSTURE_CONFIG_KEYS[number]; /** * The slice of a configuration manager this mapping needs. A real * `ConfigManager` satisfies it; a test can pass a plain object. */ export interface DevicePostureConfigReader { get(key: DevicePostureConfigKey): unknown; } /** Everything one host's device feature is configured with, resolved together. */ export interface DevicePostureSettings { readonly capability: DeviceCapabilityPolicy; readonly grants: DeviceGrantPolicy; readonly artifacts: DeviceArtifactPolicy; /** Period of the housekeeping sweep, from `device.capture.sweepIntervalMinutes`. */ readonly sweepIntervalMs: number; } /** * The posture the capability service enforces per request: the mode, what may * be granted durably, how exact a location is served, whether the clipboard can * be read, how long a device has to answer, and how long a capture is kept. */ export declare function readDeviceCapabilityPolicy(reader: DevicePostureConfigReader): DeviceCapabilityPolicy; /** * How long one capability request may take. Read on its own as well as through * the policy, because it is also the deadline on the confirmation prompt, a * question nobody answers must not outlive the request it belongs to. */ export declare function readDeviceRequestTimeoutMs(reader: DevicePostureConfigReader): number; /** * Grant-ledger bounds. `maxGrantsTotal` and `maxAuditRecords` have no settings * key, they are absolute safety bounds on persisted state, so the struct * defaults stand for them. */ export declare function readDeviceGrantPolicy(reader: DevicePostureConfigReader): DeviceGrantPolicy; /** Capture retention window and count cap. */ export declare function readDeviceArtifactPolicy(reader: DevicePostureConfigReader): DeviceArtifactPolicy; /** Housekeeping cadence. */ export declare function readDeviceSweepIntervalMs(reader: DevicePostureConfigReader): number; /** All four resolved together, for a caller that wants to report the posture. */ export declare function readDevicePostureSettings(reader: DevicePostureConfigReader): DevicePostureSettings; //# sourceMappingURL=device-posture-config.d.ts.map