/** * Runtime integrity checkpoint — browser-facing detectors. * * Every probe degrades gracefully: when the underlying API is missing or the * page can't answer (Firefox has no `permissions.query` for mic/camera, no * `screen.isExtended`; canvas/frame capture can be unavailable), it returns * the `unknown`/`ok`/`null` fallback rather than throwing or manufacturing a * false failure. The pure logic in `checkpoint.ts` treats those as "no drift". */ import type { DisplaySnapshot, FrameVerdict, PermissionSnapshot } from "./types.js"; /** Map a live camera/microphone permission to a tri-state snapshot. */ export declare function queryPermission(name: "microphone" | "camera"): Promise; /** Current device ids grouped by kind, or null when enumeration is unavailable. */ export declare function listDeviceIds(): Promise> | null>; /** External-monitor detection via `screen.isExtended` (Chromium-only). */ export declare function probeDisplay(): DisplaySnapshot; /** * Sample a live video track for black / frozen. Waits for decoded-frame * callbacks instead of treating visual stillness as a stalled camera: an * all-dark first frame is "black"; a second frame whose browser-owned * `presentedFrames` / `mediaTime` advances is "ok", even when every pixel is * identical; no advancing second frame within the bounded budget is "frozen". * Returns "unknown" when the browser can't report frame presentation, playback * can't start, the first frame never arrives, or canvas capture is unavailable. * * Browser integration still needs a real camera; unit tests cover the decoded- * frame progression, timeout, and black-frame branches with injected elements. */ export declare function sampleVideoFrame(track: MediaStreamTrack): Promise; //# sourceMappingURL=probes.d.ts.map