import { n as PermissionStatus, t as PermissionResult } from "./types-BEwVKkLJ.js"; //#region src/internal/permissions/permissionServices.d.ts type RequestPermissionOptions = { requestMotion?: boolean; /** * Also request microphone access in the same `getUserMedia` call. Used by * Video Selfie, which records audio alongside video. Defaults to `false` so * camera-only flows (selfie, ID) keep requesting `{ video: true }` exactly. */ requestAudio?: boolean; }; /** * Resolves the current camera permission without prompting the user. * * A concrete answer from the Permissions API always wins. The `'prompt'` case is * where Android WebView needs help: it has no persistent permission store — the * host app answers each `getUserMedia` through `onPermissionRequest` — so the * query reports `'prompt'` however many times access was granted, and every * capture module in a flow re-rendered the "allow camera" screen (ENG-43732). * There we fall back to whether an acquisition has actually succeeded in this * document. * * The Android-WebView gate is load-bearing, not defensive tidiness. iOS WebKit * (PR #420) and Firefox for Android (PR #726) genuinely do re-prompt per * `getUserMedia`, so treating a past grant as current would skip the SDK's * explainer while the native prompt still appeared — the regressions that got * two previous attempts at this fix reverted. Those platforms must keep seeing * `'prompt'`. */ declare function checkPermission(): Promise; /** * Requests camera permission by attempting to access the camera, then immediately * stops the obtained stream. When `requestMotion` is true (deepsight), requests * motion OS permission, primes WASM sensors, then camera — all in one user gesture * chain, matching SDK v1. */ declare function requestPermission(options?: RequestPermissionOptions): Promise; //#endregion export { type PermissionResult, type PermissionStatus, checkPermission as checkCameraPermission, requestPermission as requestCameraPermission };